Сайт ограничивает количество отображаемых страницPython

Программы на Python
Ответить
Anonymous
 Сайт ограничивает количество отображаемых страниц

Сообщение Anonymous »

Я хочу собрать данные о вакансиях на следующем веб-сайте: https://www.olx.pl/prica/. В настоящее время на этом сайте размещено около 67 911 вакансий. Однако доступны только 1000 вакансий, разбросанных по 25 страницам. Я могу пролистать только первые 25 страниц, так как 26-й страницы не существует. Я пробовал использовать как статические, так и динамические инструменты (например, Selenium) для парсинга, но удалось получить только первые 25 страниц. В конце концов я обнаружил скрытый API и смог напрямую выполнить запрос GET:

Код: Выделить всё

url = 'https://www.olx.pl/api/v1/offers/?offset=900&limit=50&category_id=2445&filter_refiners=spell_checker&sl=194242d7550x83b6c66'
response = requests.get(url = url)
print(response.status_code)

data = response.json()
titles = [item['title'] for item in data.get('data', [])]
titles
Но когда я пытаюсь превысить лимит в 25 страниц и 1000 вакансий (offset=1100&limit=50), сервер возвращает следующую ошибку:

Код: Выделить всё

{'error': {'status': 400,
'code': 400,
'title': 'Invalid request',
'detail': 'Data validation error occurred',
'validation': [{'field': 'offset',
'title': 'This value should be between 0 and 1000.',
'detail': 'This value should be between 0 and 1000.'}]}}
Для категорий, в которых менее 1000 вакансий, доступны все они. Однако для немногих категорий с количеством вакансий более 1000 на сайте отображается только 1000 случайных вакансий.
Единственное решение, которое я нашел, — это разбить запросы на более узкие группы (например, по категориям и регионам). ), гарантируя, что почти все комбинации содержат менее 1000 вакансий.
Вопрос: Я ищу способ собрать все вакансии без разбивки их на более узкие группы. Я, наверное, не до конца понимаю, как работают ограничения сайта. Буду признателен за любую помощь, ссылки и руководства.
PS. Публичный API позволяет создавать новые вакансии, но не дает возможности собирать данные о существующих.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -displayed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»