Koristite Request vezan za završeni odgovor kada pregledate njegovu odabranu rutu. Držite tri zapažanja odvojeno:

PoljeZnačenje
response.request.meta.get('proxy')Odabrani proxy URL ovog zahtjeva, ako postoji
response.ip_addressAdresa koju daje handler za preuzimanje, moguće None
Izvještaj izvora s pouzdanog odredištaJavni izvor zapažen tamo

Unutar callbacka izostavite dijelove URL-a s akreditive iz rutinske dijagnostike:

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

U HTTP/1.1 handleru Scrapy 2.13.3 adresa dolazi od peera veze odgovora, a ne od servisa za izlazni IP. Neke putanje, uključujući odgovore nulte dužine, mogu je ostaviti None. Drugi handleri je mogu popuniti drugačije. None sam po sebi ne dokazuje direktno rutiranje.

Za provjeru izlaza upitajte pouzdanu krajnju točku prema predviđenoj proxy politici i sačuvajte identitet zahtjeva uz zapažanje. Rotirajući middleware može dati kasnijoj provjeri drugu krajnju točku.

Preusmjeravanja stvaraju još jedan zahtjev. Završni metapodaci opisuju tu fazu; pregledajte historiju preusmjeravanja i svaki ponovni odabir middlewarea umjesto da to smatrate dokazom rute prvog URL-a.

Povezani članci