Za pregled izbrane poti uporabite Request, povezan z zaključenim odgovorom. Tri opažanja držite ločeno:

PoljePomen
response.request.meta.get('proxy')Izbrani URL proxyja te zahteve, kadar obstaja
response.ip_addressNaslov, ki ga poda handler za prenos, morda None
Poročilo o viru z zaupanja vrednega ciljaJavni vir, opažen tam

Znotraj callbacka izpustite dele URL-ja s poverilnicami iz rutinske diagnostike:

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

V handlerju HTTP/1.1 v Scrapy 2.13.3 naslov prihaja od partnerja povezave odgovora, ne od storitve izhodnega IP-ja. Nekatere poti, vključno z odgovori ničelne dolžine, ga lahko pustijo None. Drugi handlerji ga lahko izpolnijo drugače. None samo po sebi ne dokazuje neposrednega usmerjanja.

Za preverjanje izhoda vprašajte zaupanja vredno končno točko v skladu s predvideno politiko proxyja in ohranite identiteto zahteve skupaj z opažanjem. Vrtljiva vmesna programska oprema lahko poznejšemu preverjanju da drugo končno točko.

Preusmeritve ustvarijo še eno zahtevo. Končni metapodatki opisujejo to stopnjo; pregledajte zgodovino preusmeritev in vsako ponovno izbiro vmesne programske opreme, namesto da bi to šteli za dokaz poti prvega URL-ja.

Sorodni članki