【问题标题】:Python to retrieve multiple pages of data from API with GETPython 使用 GET 从 API 检索多页数据
【发布时间】:2018-12-14 14:22:00
【问题描述】:

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

这是我目前的尝试

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

我的问题如下 - 当我检查 data 的长度时使用

len(data.json())

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

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

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

基于this post,我试过了

print(data.links)

但这只是给了{}

问题

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

【问题讨论】:

    标签: python python-requests


    【解决方案1】:

    您好,一共有 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()
    

    【讨论】:

    • 谢谢,但是有没有办法自动确定页数?
    • 可以通过下面的代码url= 'https://api.safecast.org/en-US/measurements' data = requests.get(url) print data.content解析data.content的响应得到总页数,内容为html格式
    • 谢谢。我会尝试使用它,看看它能给我带来什么。
    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 2016-03-24
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    相关资源
    最近更新 更多