Праксі для кожнага запыту з HTTP-праксі-прамежкавым модулем Scrapy
Выкарыстоўвайце метаданыя запытаў Scrapy і яго праксі-модуль, перш чым капіраваць стары ўласны модуль аўтэнтыфікацыі ў краўлер.
HTTP-праксі-модуль Scrapy чытае праксі з метаданых запыту:
yield scrapy.Request(
'https://example.com/',
callback=self.parse,
meta={'proxy': 'http://203.0.113.10:8080'},
)
Замяніце канчатковы пункт з дакументацыі і пакіньце модуль уключаным. Спіс HTTP-праксі прапануе публічныя кандыдаты для URL гэтага запыту. Гэта выбірае маршрут запыту; пулу праксі патрэбна асобная логіка выбару.
Аўтэнтыфікацыя ідзе за выбраным канчатковым пунктам
Убудаваны модуль апрацоўвае ўліковыя даныя, перададзеныя праз падтрымліваемы URL праксі і адпаведны загаловак аўтарызацыі. Экрануйце зарэзерваваныя сімвалы URL і не запісвайце гэты URL у журнал.
Асобны модуль не павінен захоўваць загаловак Basic для папярэдняга праксі пасля змены канчатковага пункта. Няхай адзін узровень кіруе маршрутам і яго ўліковымі данымі разам.
Парадак выбару і значэнні па змаўчанні
Калі ўласны модуль загрузкі выбірае праксі, запусціце яго да таго, як убудаваны праксі-модуль апрацуе запыт. Праверце парадак і API ўсталяванага выпуску; састарэлыя імпарты scrapy.contrib адносяцца да старэйшых выпускаў.
Асяроддзе працэсу таксама можа даваць значэнні па змаўчанні для пэўных схем. Для наўмыснага прамога запыту выкарыстоўвайце дакументаваныя спецыяльныя паводзіны метаданых proxy: адсутнасць ключа не абавязкова азначае прамы доступ.
Праверце фактычны вынік. Памылка 407 датычыцца аўтэнтыфікацыі праксі, а абмежаванне частаты сайта або адмова ў доступе могуць прыйсці пасля таго, як маршрут адпрацаваў слушна.