Если каждая цель использует один прокси-аккаунт, квота одновременных запросов этого аккаунта может расходоваться на всех этих целях. Ограничение только по домену не выражает этот общий бюджет.

Для гипотетического аккаунта, допускающего не более 20 одновременных запросов, оставьте запас и задайте глобальный лимит загрузчика краулера:

CONCURRENT_REQUESTS = 16

Это иллюстративное распределение, а не рекомендуемое значение для любого провайдера. Scrapy определяет CONCURRENT_REQUESTS как максимальное число одновременных запросов загрузчика. Ограничения по домену могут дополнительно снизить параллельность; они не заменяют глобальный потолок.

Учтите в расчёте и других краулеров. Два независимых краулера, каждому из которых разрешено 16 запросов, вместе могут превысить общую квоту в 20. Разделите бюджет намеренно или введите общий лимит там, где эти клиенты сходятся.

Также выясните, что считает провайдер. HTTP-запросы, открытые TCP-соединения, активные туннели и запросы в секунду — разные величины. Постоянные соединения и мультиплексирование могут развести их счёт. Поэтому настройка параллельности запросов не является полным ограничителем соединений или скорости.

Сохраняйте темп целевого сайта как отдельное ограничение. Меньшая параллельность или задержка загрузки могут оставаться уместными для отдельной цели даже при наличии неиспользуемой ёмкости у прокси-аккаунта.

Похожие статьи