Gebruik de Request die aan de voltooide response hangt wanneer u de gekozen route onderzoekt. Houd drie waarnemingen gescheiden:

VeldBetekenis
response.request.meta.get('proxy')De gekozen proxy-URL van deze aanvraag, indien aanwezig
response.ip_addressAdres van de downloadhandler, mogelijk None
Bronrapport van een vertrouwde bestemmingDe daar waargenomen openbare bron

Laat binnen een callback URL-delen met inloggegevens weg uit de routine-diagnostiek:

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 de HTTP/1.1-handler van Scrapy 2.13.3 komt het adres van de verbindingspeer van de response, niet van een uitgaande-IP-dienst. Sommige paden, waaronder responses van lengte nul, kunnen het op None laten. Andere handlers kunnen het anders vullen. None bewijst op zichzelf geen directe routering.

Voor een uitgangscontrole, vraag een vertrouwd eindpunt onder het beoogde proxybeleid en bewaar de identiteit van de aanvraag bij de waarneming. Roulerende middleware kan een latere controle een ander eindpunt geven.

Ook redirects maken een nieuwe aanvraag. De definitieve metagegevens beschrijven die fase; bekijk de redirectgeschiedenis en elke herselectie door middleware in plaats van dit als bewijs voor de route van de eerste URL te nemen.

Gerelateerde artikelen