Les Scrapys proxy-endepunkt og tilkoblings-IP
Bruk metadataene til forespørselen for proxyen som er valgt, behandle response.ip_address som peer-informasjon fra behandleren, og verifiser utgangs-IP-en ved destinasjonen.
For å undersøke den valgte ruten, bruk Request-objektet som er festet til det fullførte svaret. Hold tre observasjoner hver for seg:
| Felt | Betydning |
|---|---|
response.request.meta.get('proxy') | Proxy-URL-en som er valgt for denne forespørselen, når den finnes |
response.ip_address | Adresse som nedlastingsbehandleren oppgir, kanskje None |
| Kilderapport fra en betrodd destinasjon | Den offentlige kilden som ble sett der |
Inne i en callback, la URL-deler med påloggingsdetaljer være utenfor den vanlige diagnostikken:
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 HTTP/1.1-behandleren til Scrapy 2.13.3 kommer adressen fra peer-en til tilkoblingen i svaret, ikke fra en tjeneste for utgangs-IP. Enkelte veier, også svar uten innhold, kan la den være None. Andre behandlere kan fylle den på en annen måte. None alene beviser ikke direkte ruting.
For å sjekke utgangen, spør et betrodd endepunkt under den planlagte proxy-policyen og ta vare på identiteten til forespørselen sammen med observasjonen. Roterende middleware kan gi en senere sjekk et annet endepunkt.
Omdirigeringer skaper også en ny forespørsel. De endelige metadataene beskriver dette trinnet; se på omdirigeringshistorikken og eventuelt nytt valg fra middleware i stedet for å bruke det som bevis for ruten til den første URL-en.