跳到內容

Session Lock

Session Lock 確保你的 agent 在整個任務過程中使用相同的出口 IP 位址,維持與目標網站的 session 連續性。

許多網站以 IP 來追蹤 session。如果你的 IP 在任務中途改變:

  • 購物車會被清空
  • 登入 session 會過期
  • 多頁爬取會被標記為可疑
  • 帳號操作會觸發安全警示
proxy = client.get_proxy(
target="amazon.com",
session_lock=True # ← 啟用 session lock
)
# 透過這個 proxy 的所有請求都使用相同 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 會從 pool 中指派一個專屬 IP
  2. 該 IP 專門保留給你的 session
  3. 在你的 session 仍有效期間,其他使用者無法取得該 IP
  4. 該 IP 會持續存在,直到你呼叫 proxy.release() 或 session 逾時

Session 會在閒置 30 分鐘後(沒有請求)自動過期。你可以自行設定:

proxy = client.get_proxy(
target="amazon.com",
session_lock=True,
session_ttl=3600 # 1 小時逾時
)

當 Session Lock 與 Auto-Heal 結合時,若你鎖定的 IP 被封鎖:

  1. HydraSkill 偵測到封鎖(403、CAPTCHA、connection reset)
  2. 自動從同一地區指派一個新 IP
  3. 透明地更新 session 綁定
  4. 你的下一個請求會透過新 IP 送出 —— 不需要改任何程式碼

Session 會不中斷地繼續。你的 agent 完全看不到這次失敗。

  • 多頁任務(分頁、結帳流程)啟用 Session Lock
  • 對於 IP 一致性無關緊要的單次請求,則停用它
  • 設定適當的 session_ttl,避免不必要地佔用 IP
  • 完成後呼叫 proxy.release(),將 IP 釋放回 pool