登录任务增加代理切换次数设置
- 后端: LoginBatchRequest 增加 max_proxy_retries 字段,默认10,0=无限 - 核心: DouyuLogin 极验验证循环根据 max_proxy_retries 控制重试 - 前端: 筛选栏增加代理切换次数输入框,Tooltip 提示0=无限切换直到成功 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
bc40d334b9
commit
2b8716cf72
+13
-3
@@ -61,11 +61,13 @@ class DouyuLogin:
|
||||
proxy_api_url: Optional[str] = None,
|
||||
timeout: tuple[float, float] = REQUEST_TIMEOUT,
|
||||
max_geetest_retries: int = 5,
|
||||
max_proxy_retries: int = 10,
|
||||
):
|
||||
self.account = account
|
||||
self.proxy = proxy
|
||||
self.timeout = timeout
|
||||
self.max_geetest_retries = max_geetest_retries
|
||||
self.max_proxy_retries = max_proxy_retries # 0=无限切换直到成功
|
||||
self.session = requests.Session()
|
||||
|
||||
# 初始化代理管理器
|
||||
@@ -317,9 +319,15 @@ class DouyuLogin:
|
||||
"""
|
||||
logger.info("开始极验 fullpage 验证...")
|
||||
|
||||
for attempt in range(self.max_geetest_retries):
|
||||
# max_proxy_retries=0 表示无限重试直到成功
|
||||
max_attempts = self.max_proxy_retries if self.max_proxy_retries > 0 else 999999
|
||||
|
||||
for attempt in range(max_attempts):
|
||||
try:
|
||||
logger.info(f"极验验证尝试 {attempt + 1}/{self.max_geetest_retries}")
|
||||
if self.max_proxy_retries > 0:
|
||||
logger.info(f"极验验证尝试 {attempt + 1}/{max_attempts}")
|
||||
else:
|
||||
logger.info(f"极验验证尝试 {attempt + 1} (无限重试)")
|
||||
|
||||
# 按斗鱼登录页 HAR:fullpage 智能检测流程,不进入图片滑块。
|
||||
str_16 = _generate_seed()
|
||||
@@ -372,7 +380,9 @@ class DouyuLogin:
|
||||
time.sleep(2)
|
||||
continue
|
||||
|
||||
raise ValueError(f"极验验证失败,已重试 {self.max_geetest_retries} 次")
|
||||
if self.max_proxy_retries > 0:
|
||||
raise ValueError(f"极验验证失败,已重试 {max_attempts} 次")
|
||||
raise ValueError("极验验证失败(无限重试模式仍未能通过)")
|
||||
|
||||
def _second_login(self, gt: str, challenge: str, validate: str,
|
||||
seccode: str, code_token: str) -> str:
|
||||
|
||||
Reference in New Issue
Block a user