Gebruik die Request wat aan die voltooide antwoord gekoppel is wanneer jy die gekose roete ondersoek. Hou drie waarnemings apart:

VeldBetekenis
response.request.meta.get('proxy')Die gekose proxy-URL van hierdie navraag, indien aanwesig
response.ip_addressAdres wat deur die aflaai-hanteerder verskaf word, moontlik None
Die bronverslag van 'n vertroude bestemmingDie publieke bron wat daar waargeneem is

Laat binne 'n terugroepfunksie die URL-dele met geloofsbriewe uit roetine-diagnostiek weg:

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

In Scrapy 2.13.3 se HTTP/1.1-hanteerder kom die adres van die antwoord se verbinding-eweknie, nie van 'n uitgangs-IP-diens nie. Sommige paaie, insluitend antwoorde met lengte nul, kan dit None laat. Ander hanteerders kan dit anders vul. None bewys op sigself nie direkte roetering nie.

Vir 'n uitgangskontrole, vra 'n vertroude eindpunt binne die beoogde proxybeleid en hou die navraag se identiteit by die waarneming. Roterende middleware kan 'n latere kontrole 'n ander eindpunt gee.

Herverwysings skep ook nog 'n navraag. Finale metadata beskryf daardie stadium; ondersoek herverwysingsgeskiedenis en enige herkeuse deur middleware eerder as om dit as bewys van die eerste URL se roete te gebruik.

Verwante artikels