Необходимо выполнить запрос к API но в ответе нужно получить данные с 20 страниц.
Подскажите пожалуйста как это можно выполнить ? И можно ли использовать List comprehensions в данном случае?
Пример запроса ниже:
respons = requests.get("данные запроса",
params={"page": [n for n in range(20)]
В данном примере делается один запрос, у которого в параметрах перечислены все 20 страниц. Естественно, результат будет плохой, ведь надо было сделать 20 запросов.
Можно сделать [requests.get(...) for n in range(20)]. но получится список response. Но такие вещи обычно удобнее в цикле делать. Чтобы можно было сразу ответ обработать, ошибки отловить, возможно повторно запросы выполнить (например, по 5 попыток до полного отказа). В list coprehesion уже не засунешь дополнительной логики.
Кроме того, в таких API обычно неизвестно заранее число страниц, и необходимость следующей страницы определяется по данным предыдущей.
for page in range(0,21):
response = request.get(f"https://example-api.com/.../{page}", headers=headers)
# или так
response = request.get(f"https://example-api.com/.../?page={page}", headers=headers)