Scrapy syn proxy-einpunt en ferbining-IP lêze
Brûk de meta-gegevens fan 'e oanfraach foar de keazen proxy, behannelje response.ip_address as peer-ynformaasje fan 'e handler, en ferifiearje it útgong-IP by de bestimming.
Brûk it Request dat oan it foltôge antwurd ferbûn is by it besjen fan 'e keazen rûte. Hâld trije waarnimmings skieden:
| Fjild | Betsjutting |
|---|---|
response.request.meta.get('proxy') | De keazen proxy-URL fan dizze oanfraach, as dy bestiet |
response.ip_address | Adres fan 'e downloadhandler, mooglik None |
| Boarneferslach fan in fertroud bestimming | De iepenbiere boarne dy't dêr waarnommen waard |
Litte binnen in callback de URL-dielen mei legitimmaasjes fuort út 'e gewoane diagnostyk:
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,
)Yn 'e HTTP/1.1-handler fan Scrapy 2.13.3 komt it adres fan 'e peer fan 'e ferbining fan it antwurd, net fan in útgong-IP-tsjinst. Guon paden, ynklusyf antwurden fan nul lingte, kinne it None litte. Oare handlers kinne it oars folje. None bewiist op himsels gjin direkte routing.
Foar in útgongskontrôle, freegje in fertroud einpunt ûnder it bedoelde proxybelied en hâld de identiteit fan 'e oanfraach by de waarnimming. Rotearend middleware kin in lettere kontrôle in oar einpunt jaan.
Ek trochferwizings meitsje in oare oanfraach. De definitive meta-gegevens beskeatse dat stadium; besjoch de trochferwizingsskiednis en elke nije seleksje fan middleware yn stee fan it as bewiis foar de rûte fan 'e earste URL te nimmen.