Проблема: При использовании парсера Rank::Archive идут GET запросы http://web.archive.org/__wb/sparkline?url=domen.com&output=json и часто подряд возникают ошибки: 597 Read first line error: EOF (0 KB) Invalid code При этом: Прокси не заблокированы Через браузер доступ с этих прокси к https://web.archive.org работает корректно Ошибка возникает именно при прямых GET запросах Предполагаемая причина: Антибот-фильтрация / отсутствие cookies Прошу модифицировать алгоритм парсинга Rank::Archive Использовать предварительную браузерную инициализацию сессии в каждом потоке. Новый алгоритм работы потока Для каждого прокси в каждом потоке: ЭТАП 1. Инициализация сессии Запустить headless-браузер. Подключиться через прокси. Перейти на: https://web.archive.org Дождаться полной загрузки страницы. Имитировать ввод домена в поисковую строку. Дождаться загрузки результатов. Сохранить: Cookies User-Agent Дополнительные заголовки ЭТАП 2. GET запросы (основной сбор данных) Выполнять GET-запросы: https://web.archive.org/__wb/sparkline?output=json&url=domen.com&collection=web С обязательной передачей: Cookies User-Agent Accept headers Referer: https://web.archive.org ЭТАП 3. Контроль валидности ответа Если ответ: пустой 0 KB HTTP != 200 JSON пустой или содержит ошибку Тогда: Считаем сессию "протухшей" Повторяем ЭТАП 1 (инициализация браузером) Цель: Устранить ошибки 597 Read first line error / EOF при работе через прокси и увеличить скорость парсинга.
Такие ошибки чаще всего указывают на проблему с прокси, реже - на проблемы с сетевым соединением. Проблем в работе данного парсера нету и необходимости использовать браузер для его работы также нету. Спойлер: Скриншот работы парсера
Если для теста с 1 прокси парсить до момента возникновения этих ошибок и сразу как ошибки идут зайти с браузера с тем же прокси на web.archive.org и сделать запрос по любому домену, то запрос выполняется без ошибок. С прокси всё хорошо.