You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VPS部署验证码求解程序遇twocaptcha.NetworkException问题求助

问题分析与解决方案

你的验证码求解程序本地运行正常,但部署到VPS后调用solver.get_result(id)时触发twocaptcha.solver.NetworkException,结合已排查的信息,从以下方向解决:

1. 移除冗余的验证码提交逻辑

代码中重复调用了solver.normal()和solver.send(),这属于冗余操作,还可能引发VPS上的网络请求冲突。normal方法已封装提交验证码+轮询获取结果的完整流程,无需手动调用send和get_result。

修正后的代码片段:

print('Rozwiązuję captchę')

# 初始化时增加超时与轮询配置,适配VPS网络延迟
solver = TwoCaptcha('api_key', timeout=60, pollingInterval=5)

# 直接通过normal方法获取验证码结果
captcha_solve = solver.normal("captcha.png")
code = captcha_solve['code']
print("Captcha rozwiązana")

2. 排查VPS到2Captcha API的网络连通性

NetworkException本质是VPS无法与2Captcha的API服务器建立有效连接,即使能下载网页图片,也不代表能访问2Captcha的域名:

  • 在VPS执行ping测试:ping api.2captcha.com,检查域名解析与连通性
  • 用curl测试API可用性(替换你的密钥):
    curl "https://api.2captcha.com/getbalance?key=你的API密钥"
    
    若返回类似{"status":1,"request":"123.45"}的结果,说明网络正常;否则需排查:
    • VPS防火墙是否开放HTTPS(443端口)的出站请求
    • 运营商是否拦截了2Captcha的API域名
    • 若VPS使用代理,需在初始化TwoCaptcha时配置:
      solver = TwoCaptcha('api_key',
                          proxy={
                              'type': 'http',  # 或socks5,根据代理类型调整
                              'uri': 'http://proxy_ip:proxy_port'
                          })
      

3. 优化TwoCaptcha的超时与重试配置

VPS网络延迟通常高于本地,默认超时设置可能不足以完成请求,初始化时调整参数:

solver = TwoCaptcha('api_key', timeout=60, pollingInterval=5)
  • timeout:单次请求的超时时间(单位:秒)
  • pollingInterval:轮询结果的间隔时间(单位:秒)

4. 替换不稳定的绝对XPATH

绝对XPATH依赖页面结构,页面更新后易失效,建议改用相对选择器。例如:

  • 原cookie按钮的绝对XPATH:
    cookie_button = driver.find_element(By.XPATH, "/html/body/div/div[2]/div[1]/div[2]/div[2]/button[1]/p")
    
  • 可改为相对CSS选择器(需根据页面实际属性调整):
    cookie_button = driver.find_element(By.CSS_SELECTOR, "button:nth-of-type(1) > p")
    

内容的提问来源于stack exchange,提问作者Heniu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:40:47