Как эффективно получить каждую запись с веб-сайта с лимитом возврата? - PullRequest
0 голосов
/ 25 февраля 2020

Я заинтересован в разборе всех записей с федерального сайта вакансий: https://www.usajobs.gov/ для анализа данных.

Я прочитал API и в этом разделе: https://developer.usajobs.gov/Guides/Rate-Limiting, он говорит следующее:

Максимум 5000 записей заданий на запрос * (на самом деле я получаю 10000 записей заданий в моем выводе)

Максимум 500 запросов о работе возвращаются за запрос

Вот остальная часть ссылки API: https://developer.usajobs.gov/API-Reference


Так вот мой вопрос:

Как я могу go до следующих 10 000, пока не будут найдены все записи?

Что я делаю:

response = requests.get('https://data.usajobs.gov/api/Search?Page=20&ResultsPerPage=500', headers=headers)

Дает мне 500 результатов на страницу в виде a. json, в котором я складываю их все в одну. json до 20-й страницы с шагом приращения l oop, который в итоге составляет все 10000. Я не уверен, что делать, чтобы получить следующие 10 000, пока не будут найдены все записи.

Другая идея состоит в том, что я могу сделать запрос для каждого штата, но недостатком является то, что я потеряю все за пределами США.

Если кто-то может указать мне правильное направление для лучшего, более простого и более эффективного способа получения всех записей, чем мои предложенные идеи, я был бы также признателен за это.

1 Ответ

0 голосов
/ 25 февраля 2020

Сервер, вероятно, выдает ошибку, когда не может найти больше страниц. Попробуйте что-то вроде

"...? Page = 25000 & ..."

, просто чтобы посмотреть, что это дает, а затем используйте while l oop с инкрементом, управляемым вручную, вместо для л oop. Условие остановки на время l oop - проверить, возвращает ли сервер страницу ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...