@vitalysokolov

Как уменьшить число 5хх и 4хх ошибок при парсинге?

Задача: отследить, когда на сайте в календаре появится свободный слот для записи. Когда этот слот появится, никому не известно (может завтра, а может через месяц).

Написал парсер на python с MechanicalSoup. Начал тестировать запуск с 4-мя прокси, 4-мя разными user-agent (выбираются случайным образом при запуске) и таймаутом сначала в 2 минуты + случайное число от 1 до 60 секунд, затем с таймаутом в 5 минут + случайное число от 1 до 60 секунд.

Результат: с каким таймаутом ни запускаю, периодически сервер возвращает то 502 Bad Gateway, то 403 Forbidden. Причем когда тестил с таймаутом в 30 секунд также с 4-мя прокси, то после какого-то промежутка времени постоянно вылетало 502 Bad Gateway. На сервере nginx.

Как действует сервер? Отслеживает кол-во запросов от одного ip за какой-то промежуток времени, и если лимит превышен, то банит по ip?
Но тогда почему если я отправляю запросы раз в 5 минут, все равно встречаю 502?

Возможно я упускаю какую-то настройку, когда прикидываюсь браузером?
browser = mechanicalsoup.StatefulBrowser(
            soup_config={'features': 'lxml'},
            raise_on_404=False,
            user_agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)\
             Chrome/74.0.3729.131 Safari/537.366"
        )


Как уменьшить число 5хх и 4хх ошибок при парсинге?
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега Python
software engineer
Зависит не от парсера, а от сайта.
Совершенно нельзя предсказать, какую защиту от "злоумышленников" придумали и интегрировали.
Вплоть до того, что сайт тупо и регулярно падает сам по себе.
Ответ написан
@Andrey_Dolg
У вас 16 комбинаций user/ip + 2 минутный таймаут и юзер без кук так что это ещё хороший вариант.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы