Proxier per forespørsel med Scrapys HTTP-proxy-middleware
Bruk Scrapy-forespørselsmetadata og proxy-middlewaren før du kopierer en gammel tilpasset autentiserings-middleware inn i en crawler.
Scrapys HTTP-proxy-middleware leser en proxy fra forespørselsmetadataene:
yield scrapy.Request(
'https://example.com/',
callback=self.parse,
meta={'proxy': 'http://203.0.113.10:8080'},
)
Erstatt dokumentasjonens endepunkt og hold middlewaren aktivert. HTTP-proxy-listen tilbyr offentlige kandidater for denne forespørselens URL. Dette velger forespørselens rute; en proxy-pool trenger egen utvelgelseslogikk.
Autentiseringen følger det valgte endepunktet
Den innebygde middlewaren håndterer legitimasjon som leveres via den støttede proxy-URL-en og den tilhørende autorisasjonsheaderen. Escape reserverte URL-tegn og unngå å logge den URL-en.
En separat middleware bør ikke beholde en Basic-header for den forrige proxyen etter at endepunktet endres. La ett lag administrere ruten og legitimasjonen sammen.
Utvelgelsesrekkefølge og standarder
Hvis tilpasset downloader-middleware velger proxyen, kjør den før den innebygde proxy-middlewaren behandler forespørselen. Kontroller rekkefølgen og API-et til den installerte versjonen; utdaterte scrapy.contrib-importer tilhører eldre versjoner.
Prosessmiljøet kan også levere skjemaspesifikke standarder. For en bevisst direkte forespørsel, bruk den dokumenterte spesielle atferden til proxy-metadataene: en manglende nøkkel betyr ikke nødvendigvis direkte tilgang.
Undersøk det faktiske resultatet. En 407 gjelder proxyautentisering, mens en nettsteds hastighetsgrense eller tilgangsnektelse kan komme etter at ruten fungerte riktig.