A Scrapy proxy végpontjának és kapcsolati IP-jének olvasása
Használja a kérés metaadatait a kiválasztott proxyhoz, tekintse a response.ip_address értéket a kezelő által adott partnerinformációnak, és ellenőrizze a kilépő IP-t a célhelyen.
A kiválasztott útvonal vizsgálatakor a befejezett válaszhoz tartozó Requestet használja. Tartsa három megfigyelését külön:
| Mező | Jelentés |
|---|---|
response.request.meta.get('proxy') | A kérés kiválasztott proxy URL-je, ha van |
response.ip_address | A letöltéskezelő által adott cím, esetleg None |
| Megbízható cél forrásjelentése | Az ott megfigyelt nyilvános forrás |
A callbacken belül hagyja ki a hitelesítő adatokat tartalmazó URL-részeket a rutindiagnosztikából:
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,
)A Scrapy 2.13.3 HTTP/1.1 kezelőjében a cím a válasz kapcsolatának partnerétől származik, nem kilépő IP-szolgáltatástól. Egyes útvonalak, köztük a nulla hosszúságú válaszok, None értéken hagyhatják. Más kezelők másként tölthetik ki. A None önmagában nem bizonyít közvetlen útválasztást.
Kilépés-ellenőrzéshez kérdezzen meg egy megbízható végpontot a tervezett proxy-szabályzat szerint, és őrizze meg a kérés azonosítóját a megfigyeléssel együtt. A forgó middleware későbbi ellenőrzésnek más végpontot adhat.
Az átirányítások is újabb kérést hoznak létre. A végső metaadatok ezt a szakaszt írják le; vizsgálja az átirányítási előzményeket és a middleware esetleges újraválasztását, ahelyett hogy az első URL útvonalának bizonyítékaként kezelné.