Proxyer pr. anmodning med Scrapys HTTP-proxy-middleware
Brug Scrapy-anmodningsmetadata og dets proxy-middleware, før du kopierer en gammel brugerdefineret godkendelses-middleware ind i en crawler.
Scrapys HTTP-proxy-middleware læser en proxy fra anmodningens metadata:
yield scrapy.Request(
'https://example.com/',
callback=self.parse,
meta={'proxy': 'http://203.0.113.10:8080'},
)
Erstat dokumentationens slutpunkt, og behold middleware aktiveret. HTTP-proxy-listen tilbyder offentlige kandidater til denne anmodnings URL. Dette vælger anmodningens rute; en proxy-pulje kræver separat udvælgelseslogik.
Godkendelse følger det valgte slutpunkt
Den indbyggede middleware håndterer legitimationsoplysninger, der leveres via dens understøttede proxy-URL og den tilhørende autorisationsheader. Escape reserverede URL-tegn, og undgå at logge den URL.
En separat middleware bør ikke beholde en Basic-header til den forrige proxy, efter at slutpunktet ændres. Lad ét lag styre ruten og dens legitimationsoplysninger sammen.
Valgrækkefølge og standarder
Hvis brugerdefineret downloader-middleware vælger proxyen, skal den køre, før den indbyggede proxy-middleware behandler anmodningen. Kontroller den installerede udgivelses rækkefølge og API; forældede scrapy.contrib-importer hører til ældre udgivelser.
Procesmiljøet kan også levere skemaspecifikke standarder. Brug den dokumenterede særlige adfærd for proxy-metadata til en bevidst direkte anmodning: en manglende nøgle betyder ikke nødvendigvis direkte adgang.
Undersøg det faktiske resultat. En 407 handler om proxygodkendelse, mens en websteds hastighedsbegrænsning eller adgangsnægtelse kan komme, efter at ruten fungerede korrekt.