Mga proxy kada kahilingan gamit ang HTTP proxy middleware ng Scrapy
Gamitin ang metadata ng kahilingan ng Scrapy at ang proxy middleware nito bago kopyahin ang lumang custom na authentication middleware sa isang crawler.
Binabasa ng HTTP proxy middleware ng Scrapy ang proxy mula sa metadata ng kahilingan:
yield scrapy.Request(
'https://example.com/',
callback=self.parse,
meta={'proxy': 'http://203.0.113.10:8080'},
)
Palitan ang endpoint sa dokumentasyon at iwanang naka-enable ang middleware. Nag-aalok ang listahan ng HTTP proxy ng mga pampublikong kandidato para sa URL ng kahilingang ito. Pinipili nito ang ruta ng kahilingan; kailangan ng proxy pool ng hiwalay na lohika sa pagpili.
Sinusunod ng authentication ang napiling endpoint
Hinahawakan ng built-in na middleware ang mga kredensyal na ibinigay sa pamamagitan ng sinusuportahang proxy URL at ang kaugnay na authorization header. I-escape ang mga reserved na character ng URL at iwasang i-log ang URL na iyon.
Hindi dapat panatilihin ng hiwalay na middleware ang Basic header para sa nakaraang proxy pagkatapos magbago ang endpoint. Hayaang isang layer ang mamahala sa ruta at mga kredensyal nito nang sabay.
Pagkakasunod-sunod ng pagpili at mga default
Kung pinipili ng custom na downloader middleware ang proxy, patakbuhin ito bago iproseso ng built-in na proxy middleware ang kahilingan. Suriin ang pagkakasunod-sunod at API ng naka-install na release; ang mga lipas na scrapy.contrib import ay para sa mas lumang release.
Ang kapaligiran ng proseso ay maaari ring magbigay ng mga default na partikular sa scheme. Para sa sadyang direktang kahilingan, gamitin ang dokumentadong espesyal na pag-uugali ng proxy metadata: ang nawawalang key ay hindi laging direktang access.
Suriin ang aktwal na resulta. Ang 407 ay tungkol sa authentication ng proxy, habang ang rate limit o pagtanggi sa access ng website ay maaaring dumating pagkatapos gumana nang tama ang ruta.