使用webshare.io代理遇urllib3 [Errno 65]错误,求排查及用法验证
问题描述
我尝试使用Webshare的代理,但持续出现错误。我的代码如下:
def extract(proxy): global pcount # ua is fake user-agent headers={'User-Agent': ua.chrome} auth = HTTPProxyAuth("******", "**********") r = requests.get('https://www.url.com', headers=headers, proxies={'http':"http://" + str(proxy)},auth=auth, timeout=2) print(r.status_code) return proxy extract('185.*.*.*:7492')
出现的错误信息为:
Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x10b0e64c0>: Failed to establish a new connection: [Errno 65] No route to host')
我是首次使用带认证的代理,请问问题出在哪里?我的用法是否正确?
问题排查与修正方案
1. 核心配置错误
你的代码存在两个关键问题:
- 代理协议不匹配:目标站点是HTTPS,但你仅配置了
http类型的代理,requests会尝试用HTTP代理处理HTTPS请求,导致连接逻辑混乱。 - 认证方式错误:Webshare代理的认证信息需要直接嵌入代理URL,无需单独使用
HTTPProxyAuth对象,这种写法会导致认证失败。
2. 修正后的代码
def extract(proxy): global pcount # ua 是伪造的User-Agent headers={'User-Agent': ua.chrome} # 将认证信息直接拼接进代理URL proxy_url = f"http://你的用户名:你的密码@{proxy}" # 同时配置http和https代理,保证协议匹配 proxies = { 'http': proxy_url, 'https': proxy_url } r = requests.get('https://www.url.com', headers=headers, proxies=proxies, timeout=2) print(r.status_code) return proxy extract('185.*.*.*:7492')
3. 额外排查点
- 检查Webshare后台是否添加了你的本地IP到代理白名单,未添加的话代理服务器会直接拒绝连接。
- 用curl测试代理可用性:
curl -x http://你的用户名:你的密码@185.*.*.*:7492 https://www.url.com -I - 排查本地防火墙或VPN是否拦截了代理连接,Errno 65通常表示本地无法路由到代理服务器,可能是网络层面的限制。
内容的提问来源于stack exchange,提问作者Timilehin Adegbulugbe
相关产品推荐
相关产品推荐

