A kiválasztott útvonal vizsgálatakor a befejezett válaszhoz tartozó Requestet használja. Tartsa három megfigyelését külön:

MezőJelentés
response.request.meta.get('proxy')A kérés kiválasztott proxy URL-je, ha van
response.ip_addressA letöltéskezelő által adott cím, esetleg None
Megbízható cél forrásjelentéseAz ott megfigyelt nyilvános forrás

A callbacken belül hagyja ki a hitelesítő adatokat tartalmazó URL-részeket a rutindiagnosztikából:

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,
)

A Scrapy 2.13.3 HTTP/1.1 kezelőjében a cím a válasz kapcsolatának partnerétől származik, nem kilépő IP-szolgáltatástól. Egyes útvonalak, köztük a nulla hosszúságú válaszok, None értéken hagyhatják. Más kezelők másként tölthetik ki. A None önmagában nem bizonyít közvetlen útválasztást.

Kilépés-ellenőrzéshez kérdezzen meg egy megbízható végpontot a tervezett proxy-szabályzat szerint, és őrizze meg a kérés azonosítóját a megfigyeléssel együtt. A forgó middleware későbbi ellenőrzésnek más végpontot adhat.

Az átirányítások is újabb kérést hoznak létre. A végső metaadatok ezt a szakaszt írják le; vizsgálja az átirányítási előzményeket és a middleware esetleges újraválasztását, ahelyett hogy az első URL útvonalának bizonyítékaként kezelné.

Kapcsolódó cikkek