Het proxy-eindpunt en verbindings-IP van Scrapy uitlezen
Gebruik de metagegevens van de aanvraag voor de gekozen proxy, behandel response.ip_address als door de handler geleverde peer-informatie en verifieer het uitgaande IP bij de bestemming.
Gebruik de Request die aan de voltooide response hangt wanneer u de gekozen route onderzoekt. Houd drie waarnemingen gescheiden:
| Veld | Betekenis |
|---|---|
response.request.meta.get('proxy') | De gekozen proxy-URL van deze aanvraag, indien aanwezig |
response.ip_address | Adres van de downloadhandler, mogelijk None |
| Bronrapport van een vertrouwde bestemming | De 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.