Python requests模块
我需要发送一个网络请求,正在使用Python的requests模块。
我有一个请求在一台机器上运行,比如说:55.84.201.228。当我通过浏览器输入这个地址时,一切正常,我可以看到网页。
但是当我使用requests.get时,它就不行了,出现了一个socket错误。
>>> import requests
>>> r = requests.get('https://55.84.201.228')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 55, in get
return request('get', url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 378, in send
raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='55.84.201.228', port=443): Max retries exceeded with url: / (Caused by <class 'socket.error'>: [Errno 110] Connection timed out)
我该如何解决这个问题呢?
>>>r = requests.get('https://www.cnn.com')
这个方法是可以正常工作的。
1 个回答
-1
我在这里只是猜测一下,因为我无法访问你的机器。不过根据我的经验,既然你在一个我猜是测试服务器上使用了https,你可以试试下面的代码:
r = requests.get('https://55.84.201.228', verify=False)
根据文档,证书验证默认是开启的。