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 стосується автентифікації проксі, а обмеження швидкості або відмова в доступі сайту можуть прийти після того, як маршрут спрацював правильно.

Схожі статті