Læs Scrapys proxy-endpoint og forbindelses-IP
Brug anmodningens metadata for den valgte proxy, behandl response.ip_address som peer-oplysninger fra handleren, og bekræft udgangs-IP'en ved destinationen.
Brug Request-objektet knyttet til det afsluttede svar, når du undersøger dets valgte rute. Hold tre observationer adskilt:
| Felt | Betydning |
|---|---|
response.request.meta.get('proxy') | Denne anmodnings valgte proxy-URL, når den findes |
response.ip_address | Adresse leveret af download-handleren, muligvis None |
| Kilderapport fra en betroet destination | Den offentlige kilde, der blev observeret der |
Inde i et callback skal du udelade URL-dele med legitimationsoplysninger fra rutinediagnostik:
from urllib.parse import urlsplit
proxy = response.request.meta.get('proxy')
proxy_host = urlsplit(proxy).hostname if proxy else None
self.logger.info(
'target_host=%s proxy_host=%s peer_ip=%s',
urlsplit(response.url).hostname, proxy_host, response.ip_address,
)I Scrapy 2.13.3's HTTP/1.1-handler kommer adressen fra svarets forbindelses-peer, ikke fra en udgangs-IP-tjeneste. Nogle stier, herunder svar med nul længde, kan efterlade den som None. Andre handlere kan udfylde den anderledes. None beviser ikke i sig selv direkte routing.
Til et udgangstjek, forespørg en betroet endpoint under den tilsigtede proxy-politik, og behold anmodningens identitet sammen med observationen. Roterende middleware kan give et senere tjek en anden endpoint.
Omdirigeringer skaber også en ny anmodning. Endelige metadata beskriver det trin; undersøg omdirigeringshistorik og enhver nyvalg fra middleware i stedet for at behandle det som bevis for den første URL's rute.