Scrapy proxy galinio taško ir ryšio IP skaitymas
Naudokite užklausos metaduomenis pasirinktam proxy, laikykite response.ip_address apdorojimo programos pateikta informacija apie partnerį ir patikrinkite išėjimo IP paskirties vietoje.
Tirdami pasirinktą maršrutą, naudokite Request, susietą su užbaigtu atsakymu. Laikykite tris stebėjimus atskirai:
| Laukas | Reikšmė |
|---|---|
response.request.meta.get('proxy') | Šios užklausos pasirinktas proxy URL, jei jis yra |
response.ip_address | Atsisiuntimo apdorojimo programos pateiktas adresas, galbūt None |
| Patikimos paskirties šaltinio ataskaita | Ten pastebėtas viešasis šaltinis |
Callback viduje praleiskite URL dalis su prisijungimo duomenimis iš įprastos diagnostikos:
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,
)Scrapy 2.13.3 HTTP/1.1 apdorojimo programoje adresas gaunamas iš atsakymo ryšio partnerio, o ne iš išėjimo IP tarnybos. Kai kurie keliai, įskaitant nulinio ilgio atsakymus, gali palikti jį None. Kitos programos gali jį užpildyti kitaip. None savaime neįrodo tiesioginio maršrutizavimo.
Norėdami patikrinti išėjimą, paklauskite patikimo galinio taško pagal numatytą proxy politiką ir išsaugokite užklausos tapatybę kartu su stebėjimu. Besisukantis middleware vėlesniam tikrinimui gali duoti kitą galinį tašką.
Peradresavimai taip pat sukuria dar vieną užklausą. Galutiniai metaduomenys apibūdina tą etapą; peržiūrėkite peradresavimų istoriją ir bet kokį iš naujo middleware pasirinkimą, o ne laikykite to pirmojo URL maršruto įrodymu.