2014-11-07 4 views
5

Ich benutze Python, um die Last.fm API aufzurufen, um Benutzerinformationen abzurufen. Dieser Fehler tritt auf, nachdem etwa 7000 Benutzer holen:Raise ConnectionError (Verbindung abgebrochen, BadStatusLine): mit Python und Last.fm API

Traceback (most recent call last): 

    File "C:/Python27/My Codes & Data/scanuserinfo_100K_3.py", line 48, in <module> 

    r=requests.get(host,params=params) 

    File "C:\Python27\requests\api.py", line 60, in get 

    return request('get', url, **kwargs) 

    File "C:\Python27\requests\api.py", line 49, in request 

    return session.request(method=method, url=url, **kwargs) 

    File "C:\Python27\requests\sessions.py", line 457, in request 

    resp = self.send(prep, **send_kwargs) 

    File "C:\Python27\requests\sessions.py", line 569, in send 

    r = adapter.send(request, **kwargs) 

    File "C:\Python27\requests\adapters.py", line 407, in send 

    raise ConnectionError(err, request=request) 

ConnectionError: ('Connection aborted.', BadStatusLine("''",)) 

Hier ist mein Code für den Aufruf der API:

import requests 

API_KEY='####my api key input here#####' 

host='http://ws.audioscrobbler.com/2.0/' 

params={'method':'user.getInfo', 

      'user':'###userid input here####', 

      'api_key':API_KEY 
    } 

r=requests.get(host,params=params) 

Könnte mir jemand hier helfen?

Antwort

1

Es könnte auf ihre API Drosselung in Beziehung gesetzt werden, da sie erwarten, dass Sie nicht mehr als 5 Anrufe/s * 60 sec/min * 5 min = 1500 Anrufe/5min

http://www.last.fm/api/tos

4,4 machen Sie implementieren geeignetes Caching entsprechend den HTTP-Headern, die mit Web-Service-Antworten gesendet werden. Sie werden nicht mehr als 5 Anfragen pro Ursprungs-IP-Adresse pro Sekunde, gemittelt über einen Minutenzeitraum von 5 , ohne vorherige schriftliche Zustimmung. Sie stimmen zu, ähnliche Künstler und alle Diagrammdaten (Top-Tracks, Top-Künstler, Top-Alben ) für mindestens eine Woche zu cachen.

Verwandte Themen