Läsa Scrapys proxy-endpoint och anslutnings-IP
Använd begärans metadata för den valda proxyn, behandla response.ip_address som peer-information från hanteraren och verifiera utgående IP vid målet.
När du undersöker den valda rutten använder du Request-objektet som är kopplat till det slutförda svaret. Håll tre observationer åtskilda:
| Fält | Betydelse |
|---|---|
response.request.meta.get('proxy') | Den valda proxy-URL:en för denna begäran, när den finns |
response.ip_address | Adress som nedladdningshanteraren anger, eventuellt None |
| Källrapport från ett betrott mål | Den offentliga källan som observerades där |
Inuti en callback utelämnar du URL-delar med inloggningsuppgifter från den vanliga diagnostiken:
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,
)I Scrapy 2.13.3:s HTTP/1.1-hanterare kommer adressen från svarets anslutnings-peer, inte från en utgående IP-tjänst. Vissa vägar, inklusive svar med noll längd, kan lämna den som None. Andra hanterare kan fylla i den annorlunda. None bevisar inte i sig direkt routning.
För en utgångskontroll, fråga en betrodd endpoint enligt den avsedda proxy-policyn och behåll begärans identitet tillsammans med observationen. Roterande middleware kan ge en senare kontroll en annan endpoint.
Omdirigeringar skapar också en ny begäran. Slutliga metadata beskriver det steget; granska omdirigeringshistoriken och eventuellt nyval från middleware i stället för att behandla det som bevis för den första URL:ens rutt.