Scrapy AutoThrottle через прокси: слоты и задержка
Держите слоты загрузки целевого сайта отдельно от маршрутов прокси, а задержку трактуйте как наблюдаемый путь запроса.
По умолчанию Scrapy назначает слоты загрузки по домену URL запроса. Назначение запросу HTTP-прокси не превращает этот URL в имя хоста прокси. Поэтому запросы к разным сайтам могут сохранять разные слоты, разделяя один посредник.
AutoThrottle регулирует задержку каждого слота по наблюдаемой задержке загрузки. Стандартный предел параллельности на домен и минимальная задержка загрузки по-прежнему действуют.
Проверьте группировку до изменения алгоритма
Пользовательское middleware может назначить request.meta["download_slot"], переопределив обычный выбор слота. Некоторые расширения прокси используют собственную группировку. Проверьте эти настройки, если кажется, что несвязанные сайты делят один ограничитель.
Наоборот, назначение отдельного слота для каждого прокси может позволить нескольким прокси одновременно обращаться к одной цели. Это может нарушить ограничение на уровне сайта, которое обходчик должен был соблюдать. Выбирайте ключ слота в соответствии с защищаемым ресурсом.
Задержка включает использованный путь
Scrapy измеряет задержку от отправки запроса до получения заголовков HTTP. Запрос, идущий через прокси, может включать в это наблюдение задержку очереди и пересылки посредника. AutoThrottle не получает отдельного времени обработки только источника.
Увеличение параллельности не заставит это измерение изолировать сайт. Держите вежливость к цели и пропускную способность прокси отдельными ограничениями, когда важны оба. Общему прокси может потребоваться дополнительный бюджет параллельности по слотам целей, при этом каждая цель сохраняет свою политику темпа.