Python requests模块

0 投票
1 回答
1792 浏览
提问于 2025-04-18 02:52

我需要发送一个网络请求,正在使用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)

根据文档,证书验证默认是开启的。

撰写回答