Есть API, которое выдает только сто результатов на одну страницу. Пытаюсь сделать цикл 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']
))
Делаю цикл по словарю, если есть результат в словаре добавляю итератором +1 в параметр page :
while vacancies == True:
params['page'] += 1
Результат в словаре params['page'] = остается ноль (страницы в API начинаются с нуля).
При вызове params после запуска цикла результат:
{'area': 1,
'no_magic': 'false',
'order_by': 'salary_desc',
'page': 0,
'per_page': 100,
'period': 30,
'search_field': 'name',
'text': '"python"'}
Возможно неправильно делаю сам цикл, отталкиваюсь от логики, что пока есть результат в словаре должен выполняться цикл.