Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从此web服务下载多页数据?_Python_Web Scraping_Urllib - Fatal编程技术网

Python 如何从此web服务下载多页数据?

Python 如何从此web服务下载多页数据?,python,web-scraping,urllib,Python,Web Scraping,Urllib,我正在尝试下载2015年加拿大联邦选举所有候选人的数据。有一个名为opennorth的服务,它有一个API,允许您通过向此url发送请求来执行此操作: 1000名候选人是你在一次申请中被允许的限制,但肯定还有更多。我想知道怎样才能得到下一页的结果。根据他们自己的文件: 要下载所有代表,请向发送请求 并遵循 元字段下的下一个链接,直到到达末尾。我们主持 GitHub上的形状文件和邮政编码一致性 这是针对“代表”数据的,但我假设“候选人”也是如此。我不明白他们所说的“跟随元字段下的下一个链接直到你

我正在尝试下载2015年加拿大联邦选举所有候选人的数据。有一个名为opennorth的服务,它有一个API,允许您通过向此url发送请求来执行此操作:

1000名候选人是你在一次申请中被允许的限制,但肯定还有更多。我想知道怎样才能得到下一页的结果。根据他们自己的文件:

要下载所有代表,请向发送请求 并遵循 元字段下的下一个链接,直到到达末尾。我们主持 GitHub上的形状文件和邮政编码一致性

这是针对“代表”数据的,但我假设“候选人”也是如此。我不明白他们所说的“跟随元字段下的下一个链接直到你到达终点”是什么意思。有人能告诉我这件事吗

这是我目前的脚本:

import urllib

with urllib.request.urlopen(r"https://represent.opennorth.ca/candidates/house-of-commons/?limit=1000") as url:
    with open(r"F:\electoral_map\candidates_python\candidates.js", "wb+") as f:
        f.write(url.read())
print("all done")

在返回的JSON对象中,有一个名为
meta
的对象

..."meta": {"next": "/representatives/?limit=1000&offset=1000",
            "total_count": 2140,
            "previous": null,
            "limit": 1000,
            "offset": 0}}
您需要的链接是
[“meta”][“next”]
中的链接


或者,您可以通过添加
offset
URL参数来构建该链接。

太棒了!非常感谢。