ConnectionError,SSLError,InsecureRequestWarning等问题解决方案(部分转载)

笔者在anaconda python 环境下,用spyder编写的程序,在爬取链家二手房源信息时遇到类似以下问题:

ConnectionError: HTTPSConnectionPool(host='dg.lianjia.com', port=443): Max retries exceeded with url: /ershoufang/105102021037.html (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x00000245237E0160>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。')) 

于是有以下尝试: (似乎。。。有所改善)

1.将下列请求头部信息加入代码中:

headers={'Connection':'close'}

2.同时加入如下代码,

#设置重连次数
requests.adapters.DEFAULT_RETRIES = 5
'''
#设置连接活跃状态为False
s = requests.session()
s.keep_alive = False
'''

 以上代码中备注部分不执行,似乎影响不大。

 

当然最好的方法是在代码中加入异常处理!并记录下相关标签信息,一段时间后再次尝试连接!

 

另外,如遇到SSLError问题则按以下方式处理即可解决问题。

以下为转载部分

 

不要使用verify=False

或者requests.packages.urllib3.disable_warnings()

不要忽视警告

正确的做法参考文档资料

https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings

https://urllib3.readthedocs.io/en/latest/user-guide.html#ssl

http://blog.csdn.net/zahuopuboss/article/details/52964809

 

只要安装相关requests依赖包就可以解决此问题:

pip install cryptography 

pip install pyOpenSSL

pip install certifi

 

使用Anaconda同理

;