【发布时间】:2021-03-28 10:41:09
【问题描述】:
有一个 API 每页只能产生 100 个结果。我正在尝试制作一个while循环,以便它遍历所有页面并从所有页面获取结果,但它不起作用。如果您能帮我弄清楚,我将不胜感激。
params = dict(
order_by='salary_desc',
text=keyword,
area=area,
period=30, # days
per_page=100,
page = 0,
no_magic='false', # disable magic
search_field='name' # available: name, description, company_name
)
response = requests.get(
BASE_URL + '/vacancies',
headers={'User-Agent': generate_user_agent()},
params=params,
)
response
items = response.json()['items']
vacancies = []
for item in items:
vacancies.append(dict(
id=item['id'],
name=item['name'],
salary_from=item['salary']['from'] if item['salary'] else None,
salary_to=item['salary']['to'] if item['salary'] else None,
currency = item['salary']['currency'] if item['salary'] else None,
created=item['published_at'],
company=item['employer']['name'],
area = item['area']['name'],
url=item['alternate_url']
))
我循环遍历字典,如果字典中有结果,我给page参数加+1作为迭代器:
while vacancies == True:
params['page'] += 1
字典参数中的结果 ['page'] = 零剩余(API 中的页面从零开始)。
启动循环后调用params时,结果为:
{'area': 1,
'no_magic': 'false',
'order_by': 'salary_desc',
'page': 0,
'per_page': 100,
'period': 30,
'search_field': 'name',
'text': '"python"'}
也许我做的循环不正确,从逻辑开始,当字典中有结果时,必须执行循环。
【问题讨论】: