Skip to main content
 首页 » 编程设计

Python 请求.exceptions.ConnectionError : HTTPSConnectionPool : Max retries exceeded with url: [Errno 111] Connection refused)

2025年05月04日8zhujiabin

所以我正在尝试使用 API ( http://twittercounter.com/pages/api ) 从网上获取一些数据。通过浏览器直接使用我的 API key 时,我得到了所需的结果。但是在 python 中使用 requests.get() 函数时,我得到了一个错误,这里给出了回溯。

代码:

>>> import requests 
>>> r = requests.get('https://api.twittercounter.com/?apikey=XXXX&twitter_id=57947109') 

回溯:

 File "<stdin>", line 1, in <module> 
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 55, in get 
    return request('get', url, **kwargs) 
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 44, in request 
    return session.request(method=method, url=url, **kwargs) 
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 382, in request 
    resp = self.send(prep, **send_kwargs) 
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 485, in send 
    r = adapter.send(request, **kwargs) 
  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 372, in send 
    raise ConnectionError(e) 
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.twittercounter.com', port=443): Max retries exceeded with url: /?apikey=XXXX&twitter_id=57947109 (Caused by <class 'socket.error'>: [Errno 111] Connection refused) 

我用这个 key 建立了大约 10 个连接,速率限制是 100,所以我确定我没有超过限制。谁能帮忙。我几乎是请求和 http 方面的菜鸟。

编辑:尝试在请求 header 中设置浏览器代理

我试过换浏览器代理,还是不行

>>> headers = { 
...     'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0'} 
>>> url = 'https://api.twittercounter.com/?apikey=09792d72d848c55a5b6b9a1bf3bb225a&twitter_id=57947109' 
>>> response = requests.get(url, headers=headers) 

我得到了与上次相同的回溯。

请您参考如下方法:

这个方法非常适合我:

>>> import requests 
>>> url = 'http://api.twittercounter.com/' 
>>> payload = {'apikey': 'XXXXXX', 'twitter_id':53687449} 
>>> requests.get(url, params=payload) 
<Response [200]>