コンテンツにスキップ

Session Lock

Session Lock は、エージェントがタスク全体を通じて 同じ送信元 IP アドレス を使用することを保証し、対象サイトとのセッションの継続性を維持します。

多くのウェブサイトは IP 単位でセッションを追跡します。タスクの途中で IP が変わると、次のことが起こります:

  • ショッピングカートがクリアされる
  • ログインセッションが切れる
  • 複数ページのスクレイピングが不審と判定される
  • アカウント操作がセキュリティアラートを発生させる
proxy = client.get_proxy(
target="amazon.com",
session_lock=True # ← Session Lock を有効化
)
# このプロキシ経由のすべてのリクエストが同じ IP を使用
for page in range(1, 50):
requests.get(f"https://amazon.com/s?page={page}", proxies=proxy.to_dict())
# 毎回同じ IP ↑

session_lock=True を有効にすると:

  1. HydraSkill がプールから専用の IP を割り当てます
  2. その IP は あなたのセッション専用に予約 されます
  3. セッションがアクティブな間、他のユーザーはその IP を取得できません
  4. proxy.release() を呼ぶか、セッションがタイムアウトするまで IP は維持されます

セッションは 無操作 30 分(リクエストなし)で自動的に期限切れになります。これは設定できます:

proxy = client.get_proxy(
target="amazon.com",
session_lock=True,
session_ttl=3600 # タイムアウトを 1 時間に
)

Session Lock と Auto-Heal を組み合わせると、ロックした IP がブロックされた場合に:

  1. HydraSkill がブロックを検知します(403、CAPTCHA、接続リセット)
  2. 同じ地域から 新しい IP を自動的に割り当てます
  3. セッションのバインディングを透過的に更新します
  4. 次のリクエストは新しい IP を経由します——コードの変更は不要です

セッションは中断されることなく継続します。エージェントが障害に気づくことはありません。

  • 複数ページのタスク(ページネーション、チェックアウトフロー)には Session Lock を有効化する
  • IP の一貫性が問題にならない 単発のリクエスト では無効化する
  • 不要に IP を保持しないよう、適切な session_ttl を設定する
  • 完了したら proxy.release() を呼び、IP をプールへ返却する