使嵌套的HTTP请求从响应中获取URL

时间:2018-02-14 05:39:05

标签: python python-requests

我有一个我正在尝试发出请求的网址。

所以,我每个请求都有一个名为url和has_more的字典。 我想从一个请求开始;如果响应has_more为true,则继续从字典url发出嵌套请求。

字典看起来像这样;

dictionary['url'] = someurl
dictionary['has_more']= True


r = requests.get('some_url').json()
url = r['url']#then keep making more nested requests. 

我目前遇到的问题是:

在我从之前的URL获得响应JSOn之前,我不知道下一个请求的URL。 所以;我不知道在python中是如何完成的,因为运行普通循环不能完成这项工作。

1 个答案:

答案 0 :(得分:0)

所以你只需要迭代一个while循环。

has_more = True
url = '<your_url>'

while has_more:
    response = requests.get(url)
    response_json = response.json()
    if not ('has_more' in response_json and response_json['has_more']):
        # Either you dont have has_more in response or its false
        has_more = False
    else:
        # You can do any other jobs you need to done here if has_more is true
        url = response_json['url']

所以这个循环一直到你得到has_more=False