В дополнение к задаче Улучшение Настройки потоков - Proxy strategy
https://a-parser.com/threads/8144/
хочу предложить близкую по смыслу задачу.
Часто приходится парсить сайта, которые банят прокси при частом их использовании.
Я спрашивал совета об этом в сапорте, посоветовали ставить "Задержка запросов" в N секунд.
В принципе помогает, но!
Если внимательно посмотреть логи с такой настройкой, то видно, что поток останавливается на N секунд - выдерживает заданную паузу,
потом берет прокcи и качает заданную в УРЛ страницу.
То есть фактически ПОТОК ПРОСТАИВАЕТ N секунд!!!
А зачем ему простаивать, если есть другие рабочие прокси, которые уже давно "отдыхают"?
Предлагаю вместо простаивания потока (Request delay) выбирать из рабочих прокси ту, которая не работала N секунд и сразу пускать поток в работу, пауза будет обеспечиваться тем, что выбранная прокси не работала N или более секунд.
Например ввести еще параметр к каждой прокси - дата-время последнего использования (окончания скачивания УРЛ).
Тогда для обеспечения паузы в N секунд, можно будет вместо остановки потока выбирать прокси, которая не работала последние N секунд, но если такой нет, тогда поток будет ждать, когда такая появится.
Можно еще сделать выбор - какую прокси брать - отдохнувшую N секунд или максимально отдохнувшую.
https://a-parser.com/threads/8144/
хочу предложить близкую по смыслу задачу.
Часто приходится парсить сайта, которые банят прокси при частом их использовании.
Я спрашивал совета об этом в сапорте, посоветовали ставить "Задержка запросов" в N секунд.
В принципе помогает, но!
Если внимательно посмотреть логи с такой настройкой, то видно, что поток останавливается на N секунд - выдерживает заданную паузу,
потом берет прокcи и качает заданную в УРЛ страницу.
То есть фактически ПОТОК ПРОСТАИВАЕТ N секунд!!!
А зачем ему простаивать, если есть другие рабочие прокси, которые уже давно "отдыхают"?
Предлагаю вместо простаивания потока (Request delay) выбирать из рабочих прокси ту, которая не работала N секунд и сразу пускать поток в работу, пауза будет обеспечиваться тем, что выбранная прокси не работала N или более секунд.
Например ввести еще параметр к каждой прокси - дата-время последнего использования (окончания скачивания УРЛ).
Тогда для обеспечения паузы в N секунд, можно будет вместо остановки потока выбирать прокси, которая не работала последние N секунд, но если такой нет, тогда поток будет ждать, когда такая появится.
Можно еще сделать выбор - какую прокси брать - отдохнувшую N секунд или максимально отдохнувшую.