
python 使用代理IP报错 HTTPSConnectionPool(host=‘XXXXX‘, port=443): Max retries exceeded with url
我使用的方法是,通过浏览器设置代理IP。然后访问对应网站,可以访问,那代表代理IP没问题,如果不能访问,则代表代理IP有问题。打开chrome设置->系统->打开您计算机的代理设置->开启代理->填写IP和端口->保存。目前我自己用以上方法都解决了。
·
出现报错情况:
在使用 requests.get(url, params=params, headers=headers, proxies=proxies)
的时候报错。
报错内容:exceptions.MaxRetryError: HTTPSConnectionPool(host='XXXXX', port=443): Max retries exceeded with url: XXXXXXX
。
如果不用代理(requests.get(url, params=params, headers=headers)
)则可以正常请求。
解决思路:
1.首先:确认代理IP是否可以正常使用(大概率就是代理IP不能用,直接买吧,免费的基本都没法用)
我使用的方法是,通过浏览器设置代理IP。然后访问对应网站,可以访问,那代表代理IP没问题,如果不能访问,则代表代理IP有问题。
浏览器代理IP设置:(其他的可以自行查找,基本都差不多)
打开chrome设置->系统->打开您计算机的代理设置->开启代理->填写IP和端口->保存
win10
win2012
2. 标题检查下面几个问题(我就是这里踩的坑)
- 代理的
proxies
设置中,每个键值对,无论是key
还是value
中,的http
和https
都必须用小写,因为用大写后代理会无效
(亲测),走的还是本机的IP
。 - 代理的
proxies
设置中,无论是http
还是https
对应的值,开头都是http
。
例如:
proxies = {
'http': 'http://123.12.12.12:8080',
'https': 'http://123.12.12.12:8080'
}
- 目标网站是
https://
的话,要在请求的时候增加verify=False
。
参数:verify:Ture/False
,默认是Ture
,用于验证SSL证书开关。
例如:
proxies = {
'http': 'http://123.12.12.12:8080',
'https': 'http://123.12.12.12:8080'
}
res = requests.get(url, verify=False, proxies=proxies)
目前我自己用以上方法都解决了,基本上都是代理IP的问题,很多代理IP可以测试,用测试的如果还是不行,再尝试后面的几个方法。
更多推荐
所有评论(0)