Python使用GET从API检索多页数据

时间:2018-12-14 05:22:36

标签: python python-requests

我正在尝试使用Python 3 requests.get通过其API从this page检索数据。我有兴趣使用API从所有页面中检索数据。

到目前为止,这是我的尝试

data = 'https://api.safecast.org/en-US/measurements'
data = requests.get(url)

我的问题是以下-当我使用{p>检查data的长度时

len(data.json())

它给了我25。这是因为每页有25条记录,并且仅返回第1页。我需要从所有页面而不是仅从第1页检索数据。

根据API,可以在查询中指定一些参数以过滤搜索。但是,我不知道如何在查询中指定页码。

我浏览了这2个SO帖子(12),但找不到与我的问题相关的内容。

我尝试基于this post

print(data.links)

但这只是给了{}

问题

是否可以使用API​​一次从所有页面收集数据?另外,如何以编程方式确定页数?

1 个答案:

答案 0 :(得分:3)

嗨,由于总共有4458708页,您可以添加for循环并获取每页的json。检查以下代码

import requests
for page in range(1,4458709):
    url = 'https://api.safecast.org/en-US/measurements.json?page=%s'%page
    data = requests.get(url)
    print data.json()