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