2014-01-22 62 views
2

所以我試圖使用API​​(http://twittercounter.com/pages/api)從網上獲取一些數據。通過瀏覽器直接使用我的API密鑰時,我獲得了所需的結果。但是,在python中使用requests.get()函數時,出現錯誤,此處給出了回溯。Python請求.exceptions.ConnectionError:HTTPSConnectionPool:最大重試次數超過url:[Errno 111]連接被拒絕)

代碼:

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

我做了約10連接,與此鍵,限速是100,所以我相信我沒有超過限制。任何人都可以請幫忙。我幾乎是一個請求和HTTP的菜鳥。

編輯:試圖設置瀏覽器代理的請求頭

我想這改變瀏覽器代理,它仍然無法正常工作

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

我得到相同的回溯的最後一次。

+0

你永久或不時得到這個例外?最近我遇到了這個問題,但我不時得到這個異常**。所以我剛剛發現一個異常,然後重新嘗試連接。它爲我工作。 –

+1

@DmitryVakhrushev我正在獲得這永久。我試圖捕獲異常並重試,但它再次給我同樣的錯誤:( –

+1

@DmitryVakhrushev,你可以粘貼你的代碼,或者在這裏的一些片段,也許這可能有所幫助 –

回答

1

這種方法非常適合我:

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

之後,我不知道,但這似乎是一個反覆出現的問題,很多人告訴我這個錯誤,大多數是暫時出現的,像我的情況一樣,沒有得到解決。我必須爲此使用httplib模塊。 –

+0

您使用的是什麼版本的請求? –

+1

最新版本,昨天更新.. –

0

雖然我無法解決此問題我自己,我發現了一個解決方法,這一點,其中這部作品,而不是使用的要求,我不得不用httplib,然後ast模塊。我使用的代碼是:

>>> import httplib 
>>> conn = httplib.HTTPConnection("api.twittercounter.com") 
>>> conn.request("GET", "?apikey=XXXX&twitter_id=15160529") 
>>> r1 = conn.getresponse() 
>>> a = r1.read() 
>>> import ast 
>>> b = ast.literal_eval(a) 

現在,b是一個字典,它具有我正在尋找的任何數據。但是,如果有人能告訴我這個錯誤的適當解決方案,那將是非常有用的。

相關問題