requests.exceptions.SSLError: HTTPSConnectionPool(host=‘www.pinterest.com’, port=443): Max retries exceeded with url: /resource/UserRegisterResource/create/ (Caused by SSLError(SSLError(1, ‘[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1076)’)))
标题就是这么长。看结尾的错误码(_ssl.c:1076),不同请自觉划走。因为我猜这里没有你要的答案。
90%的人可能都会出现前面的错误,通常加个time.sleep(1)减慢访问速度就行。然而百分之9的人通常会因为使用了代理而选择在系统环境中将代理设为空,或者在发送请求的时候将代理设为空,例如
os.environ["NO_PROXY"]="baidu.com, google.com"
(你需要的域名)这种或者是这种
proxy={"https": "https://122.148.122.111:90", "http": "http://122.148.122.111:90"}
requests.get(url, proixies=proxy)
然而我竟是那剩下1%的人。
问题描述
我的需求是必须要把电脑的代理开着。网络的配置是公司有外网环境可以上外网,但是我需要一个和公司独立的代理IP,于是开启了其他的代理工具。问题就在于开启代理工具后,一切都正常,IP也正常,各种应用都正常。就是使用requests的时候会出现标题所示错误。
一顿Google百度大法不能说毫无结果,只能说人的痛苦并不相通,唯一有类似状况的一个情况和我也似乎不太相同,去研究公司的防火墙白名单太复杂了,自己的电脑防火墙都关 了。贴个连接:为什么在系统设置中设置了代理后,自己写的python爬虫程序访问网络时还需要设置代理?
一点结果都没有,curl也是不能返回结果。最后部门经理让我试试urllib。requests就是urllib封装的,结果居然神奇的能运行,去找了一下两个库之间的区别,但是基本都只能浅层的说说大概区别是啥,完全没有我要的底层逻辑原理,想来也不会有人去研究这个,除非requests库或者相关开发底层的家伙。
感觉全球只有自己在面临这个问题的时候,也太tm痛苦了,不懂底层原理,也没有任何指导方向
算了,就这样吧!咱能跑就行~
|