Python 如何对具有多个页面的API进行爬网
我有一个包含一些JSON的API的url:Python 如何对具有多个页面的API进行爬网,python,json,api,generator,Python,Json,Api,Generator,我有一个包含一些JSON的API的url: { "posts": [ ... ], "page": { ... }, "next": "/posts.json?page=2" } 其中/posts.json?page=2具有不同的页码,如果没有更多的页面,则可能为null 在Python中,如何创建一个输出所有页面和所有帖子的函数 我想我得做点什么 def get_posts(url, posts=[]): json = request(url).json() posts
{
"posts": [ ... ],
"page": { ... },
"next": "/posts.json?page=2"
}
其中/posts.json?page=2
具有不同的页码,如果没有更多的页面,则可能为null
在Python中,如何创建一个输出所有页面和所有帖子的函数
我想我得做点什么
def get_posts(url, posts=[]):
json = request(url).json()
posts.append(json.posts)
while json.next_page:
return get_posts(json.next_page, posts)
但我想我可以用收益率做点什么
def get_posts(url, posts=None):
# initialize the posts lists
posts = [] if posts is None else posts
# make the request and convert to json
json = request(url).json()
# extends the posts array with the returned posts
posts.extend(json['posts'])
# if there is a next_page, call the function recursively
if json.next_page:
return get_posts(json.next_page, posts)
# if there isn't a next_page, return the posts
return posts