Les Scrapys proxy-endepunkt og tilkoblings-IP
Bruk forespørselens metadata for den valgte proxyen, behandle response.ip_address som peer-informasjon fra behandleren, og bekreft utgangs-IP-en ved målet.
Når du undersøker den valgte ruten, bruk Request-objektet som er knyttet til det fullførte svaret. Hold tre observasjoner atskilt:
| Felt | Betydning |
|---|---|
response.request.meta.get('proxy') | Denne forespørselens valgte proxy-URL, når den finnes |
response.ip_address | Adresse levert av nedlastingsbehandleren, muligens None |
| Kilderapport fra et klarert mål | Den offentlige kilden som ble observert der |
Inne i en callback, utelat URL-deler med påloggingsinformasjon fra rutinediagnostikken:
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.3s HTTP/1.1-behandler kommer adressen fra svarets tilkoblings-peer, ikke fra en utgangs-IP-tjeneste. Noen ruter, inkludert svar med null lengde, kan la den stå som None. Andre behandlere kan fylle den ut annerledes. None beviser ikke i seg selv direkte ruting.
For en utgangssjekk, spør et klarert endepunkt under den tiltenkte proxy-policyen og ta vare på forespørselens identitet sammen med observasjonen. Roterende middleware kan gi en senere sjekk et annet endepunkt.
Omdirigeringer lager også en ny forespørsel. Endelige metadata beskriver det trinnet; undersøk omdirigeringshistorikken og enhver nyvalg fra middleware i stedet for å behandle det som bevis for den første URL-ens rute.