我正在尝试从NYT API中提取特定文章的URL。 这是我的代码:
import requests
for i in range(0,100):
page=str(i)
r = requests.get("http://api.nytimes.com/svc/search/v2/articlesearch.json?begin_date=20100101&q=terrorist+attack&page="+page+"&api-key=***")
data = r.json()
article = data['response']['docs']
for url in article:
print(url["web_url"])
打印完第一个20网址后,它会给我这个错误
KeyError: 'response'
然而,通过检查随机页面,其中任何一个都存在密钥“响应”。如何打印接下来88页的所有网址?
答案 0 :(得分:1)
打印dict.keys(数据)
如果你一直看到'消息'作为你的钥匙之一,你知道你可能要求太快。因此,只需加入time.sleep(0.5)即可减慢速度,你应该做得很好。
答案 1 :(得分:0)
您假设至少有101个页面可以发出请求(0到100)。
如果您向第100页发出请求,是否仍然使用response
密钥获得相同的JSON结构?
你应该使用的是一个while循环,当你得到KeyError
时会中断。