Как с hh.ru спарсить более 2000 записей
Подскажите пожалуйста, хочу спарсить более 2000 вакансий с hh, каким образом это можно сделать? Мой участок кода, который отвечает за парсинг
def parser(pages=20):
result = get_page(URL)
data = []
if result.status_code == 200:
for page in range(pages):
while len(data) < 2000:
try:
result = get_page(URL, params={'text': 'Python','per_page':'100','page':page})
data.extend(get_content(result))
save_to_csv(data, CSV)
except:
sleep(.5)
if len(data) >= 2000:
for page in range(pages):
result = get_page(URL, params={'text': 'Python','per_page':'100','page':page})
save_to_csv(data, './data/data{}.csv'.format(len(os.listdir('./data/'))))
parser()
Ответы (1 шт):
К сожалению HH не выдаёт больше 2000 вакансий ни по какому запросу, ни через API, ни через браузер. Для примера вот пример выдачи по запросу: "Автомобильный бизнес": Найдено 20 420 вакансий, однако страниц в выдаче всего 40, по 50 вакансий на странице -
В документации к API написано, что максимальная глубина выдачи - 2000
При указании параметров пагинации (page, per_page) работает ограничение: глубина возвращаемых результатов не может быть больше 2000. Например, возможен запрос per_page=10&page=199 (выдача с 1991 по 2000 вакансию), но запрос с per_page=10&page=200 вернёт ошибку (выдача с 2001 по 2010 вакансию) - источник
Скорее всего такое ограничение сделано для того что бы защититься от скачивания ВСЕХ вакансий с HH.