【问题标题】:Python requests modulePython 请求模块
【发布时间】:2014-04-16 04:54:22
【问题描述】:

我需要调用一个网络请求,并且我使用 Python 请求模块。

我有一个请求正在机器上处理,例如:55.84.201.228。当我通过浏览器输入它时,它工作正常,我能够查看网页..

但是当我使用 requests.get 时,它不起作用..它出现套接字错误..

>>> 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')

这很好用。

【问题讨论】:

  • 您与 python 脚本的连接似乎超时 - 它无法连接到主机。您的浏览器中是否设置了代理,或其他与脚本不同的设置?在不知道您的网络设置的情况下,这是无法回答的。

标签: python python-requests


【解决方案1】:

我在这里做一个疯狂的猜测,因为我无法访问你的机器,但根据经验,因为你在我认为是一些测试服务器上使用 https 尝试

r = requests.get('https://55.84.201.228', verify=False)

根据the documentation证书验证默认开启。

【讨论】:

  • 是的,Ben 你可能是对的。但是请求确实有一些带有超时github.com/kennethreitz/requests/issues/701 的 ssl 错误屏蔽的历史,所以我期待可能是 ssl 握手超时?只是想提供一些调试思路。您评论中的代理设置可能是一个更好的线索。
  • @jhnwsk 那是两年多以前的事了。这已经修复了大约相同的时间。
  • @sigmavirus24 你是对的,这可能听起来对请求不尊重,但事实并非如此。我的立场得到纠正,我急于回答一个我没有答案的问题。对不起。
猜你喜欢
  • 1970-01-01
  • 2018-04-28
  • 2012-10-16
  • 2015-11-13
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多