Een proxy voor één fetch in Scrapy shell
Gebruik de proxy-metadata van een Request binnen Scrapy shell en inspecteer de reactie van dat geconfigureerde verzoek.
Bouw binnen Scrapy shell het verzoek dat je wilt dat de downloader uitvoert:
from scrapy import Request
fetch(Request(
"https://www.example.com/",
meta={"proxy": "http://proxy.example:8080"},
))
response.status
HttpProxyMiddleware leest de proxywaarde uit de metadata van dat Request. Het moet ingeschakeld zijn in de configuratie van de actieve downloader-middleware. De variabele response daarna hoort bij deze fetch. Kies voor deze openbare URL een niet-geauthenticeerd HTTP-adres uit de HTTP-proxylijst als openbare tussenpersonen zijn toegestaan, en plaats vervolgens de URL in de proxy-metadata van dat verzoek.
De shell starten vanuit het Scrapy-project laat hem de configuratie van dat project laden. Dat selecteert middleware en andere instellingen; het kiest zelf geen specifiek proxy-eindpunt. De verzoekmetadata hierboven leveren die keuze direct.
Voor een proxy met Basic-inloggegevens documenteert Scrapy gebruikersinformatie in de proxy-URL. Codeer gereserveerde tekens in de accountonderdelen voordat je deze opbouwt. Het is niet nodig om een Authorization-header van de website voor dat account toe te voegen.
Scrapy kan ook proxy's ontdekken uit zijn ondersteunde omgevingsvariabelen. De expliciete proxy-metadata van een verzoek heeft voorrang. Voor een bewust direct verzoek schakelt een proxywaarde van None de op de omgeving gebaseerde selectie van die middleware voor het verzoek uit.