【问题标题】:Using Python's requests lib throwing ProxyError使用 Python 的 requests 库抛出 ProxyError
【发布时间】:2016-08-18 13:51:10
【问题描述】:

我还是 python 新手,不知道如何处理这个错误以及如何处理它来避免它。

当我使用requests.get('http://www.baidu.com')

    import requests
    header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}
    h=requests.get('http://www.baidu.com',headers=header)
    print h.text

它会抛出一个ProxyError:

Traceback (most recent call last):
  File "D:/freedomcoder/Code/Python/rexx/rexx.py", line 8, in <module>
    h = requests.get('http://github.com/kennethreitz/requests/issues/3050',headers=header)
  File "C:\Python27\lib\site-packages\requests\api.py", line 70, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Python27\lib\site-packages\requests\api.py", line 56, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
File "C:\Python27\lib\site-packages\requests\sessions.py", line 596, in send
   r = adapter.send(request, **kwargs)
  File "C:\Python27\lib\site-packages\requests\adapters.py", line 485, in send
    raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPConnectionPool(host='107.160.9.10', port=80): Max retries exceeded with url: http://www.baidu.com/ (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x02EE4170>: Failed to establish a new connection: [Errno 10061] ',)))

但是当我使用requests.get('https://www.baidu.com') 时,它会返回正确的页面。我不知道为什么会这样。

【问题讨论】:

  • 我只是运行你的代码,没关系。我认为你应该删除标题。
  • 但它仍然不起作用。 :(要不要重装系统???@giaosudau

标签: python python-requests


【解决方案1】:

我处理这个问题。

只需添加代理={'http':'','https':''}

例如:

h=requests.get('http://www.baidu.com', proxies={'http':'','https':''})

【讨论】:

  • 兄弟。我为此死了一个多小时。谢谢。
  • 太可惜了,我花了好几个小时试图解决这个代理问题
【解决方案2】:

当我测试您的代码时,它似乎可以工作。

正如其他人所说,问题可能是网络连接错误。

通过cli验证问题的一种方法(连接应该打开,就像在这个例子中soconnection成功打开......)

$ telnet baidu.com 80 
Trying 220.181.57.217...
Connected to baidu.com.
Escape character is '^]'.

【讨论】:

  • 问题:HTTPConnectionPool(host='107.160.9.10', port=80) 我发现主机是我的vps的IP地址。不知道怎么处理.......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
  • 2019-01-11
  • 1970-01-01
  • 2012-04-03
相关资源
最近更新 更多