HTTP-прокси-middleware Scrapy читает прокси из метаданных запроса:

yield scrapy.Request(
    'https://example.com/',
    callback=self.parse,
    meta={'proxy': 'http://203.0.113.10:8080'},
)

Замените конечную точку из документации и оставьте middleware включённым. Список HTTP-прокси предлагает публичные кандидаты для URL этого запроса. Это выбирает маршрут запроса; пулу прокси нужна отдельная логика выбора.

Аутентификация следует за выбранной конечной точкой

Встроенный middleware обрабатывает учётные данные, переданные через поддерживаемый URL прокси и связанный заголовок авторизации. Экранируйте зарезервированные символы URL и не записывайте этот URL в журнал.

Отдельный middleware не должен сохранять заголовок Basic для предыдущего прокси после смены конечной точки. Пусть один слой управляет маршрутом и его учётными данными вместе.

Порядок выбора и значения по умолчанию

Если собственный middleware загрузки выбирает прокси, запустите его до того, как встроенный прокси-middleware обработает запрос. Проверьте порядок и API установленного выпуска; устаревшие импорты scrapy.contrib относятся к более старым выпускам.

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

Проверьте фактический результат. Ошибка 407 относится к аутентификации прокси, а ограничение частоты или отказ в доступе сайта могут прийти после того, как маршрут отработал правильно.

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