19-4-29补充:python
NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x00000000038F2B00>: Failed to establish a new connection:
[WinError 10060] 因为链接方在一段时间后没有正确答复或链接的主机没有反应,链接尝试失败。',))git
解决办法:github
session.keep_alive=Falsejson
python hostname doesn't match either of facebookXXXXX
解决办法:session
import ssl
ssl.match_hostname = lambda cert, hostname: True
多方查阅后发现了解决问题的缘由:http链接太多没有关闭致使的。post
解决办法:url
requests.adapters.DEFAULT_RETRIES = 5code
requests使用了urllib3库,默认的http connection是keep-alive的,requests设置False关闭。ip
操做方法ssl
s = requests.session() s.keep_alive = False
只用session进行操做。即只建立一个链接,并设置最大链接数或者重试次数。
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
session = requests.Session()
retry = Retry(connect=3, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://', adapter)
session.mount('https://', adapter)
session.get(url)
import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry import Retry s = requests.Session() retry = Retry(connect = 5, backoff_factor = 1) adapter = HTTPAdapter(max_retries = retry) s.mount('http://', adapter) s.keep_alive = False res = s.post(self.conn.host + '/sign-in', data = json.dumps({ 'name': "XXX", 'pwd': "XXX" })) response = res.json()
可是在starkoverflow上有人给出了这样的解释。
pip install -U pyopenssl
五、设定固定的睡眠时间在发送请求之间
https://github.com/requests/r...
https://stackoverflow.com/que...