使用Python和Last.fm API时出现连接错误(Connection aborted, BadStatusLine): 如何解决?

5

我正在使用Python调用Last.fm API获取用户信息。在获取了大约7000个用户后,出现了以下错误:

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("''",))

这是我的调用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)

有人能在这里帮助我吗?

1个回答

1
可能与他们的 API 限流有关,因为他们希望您在 5 秒钟内不要进行超过 5 次调用 * 60 秒/分钟 * 5 分钟 = 1500 次调用 / 5 分钟。

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

4.4 您将根据发送的Web服务响应的HTTP标头实施适当的缓存。未经事先书面同意,您不得每个源IP地址每秒进行超过5个请求,平均分布在5分钟内。您同意缓存类似的艺术家和任何图表数据(热门曲目,热门艺术家,热门专辑)至少一周。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接