Čtení proxy koncového bodu a IP adresy spojení ve Scrapy
Použijte metadata požadavku pro vybraný proxy, berte response.ip_address jako informaci o protistraně od handleru a ověřte výstupní IP na cíli.
Při zkoumání vybrané trasy použijte Request přidružený k dokončené odpovědi. Tři pozorování držte odděleně:
| Pole | Význam |
|---|---|
response.request.meta.get('proxy') | Vybraná proxy URL tohoto požadavku, pokud existuje |
response.ip_address | Adresa poskytnutá handlerem stahování, případně None |
| Zpráva o zdroji od důvěryhodného cíle | Veřejný zdroj tam pozorovaný |
Uvnitř callbacku vynechte z rutinní diagnostiky části URL nesoucí přihlašovací údaje:
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,
)V handleru HTTP/1.1 Scrapy 2.13.3 pochází adresa od protistrany spojení odpovědi, nikoli ze služby výstupní IP. Některé cesty, včetně odpovědí nulové délky, ji mohou nechat None. Jiné handlery ji mohou vyplnit odlišně. None samo o sobě neprokazuje přímé směrování.
Pro kontrolu výstupu se dotážete důvěryhodného koncového bodu v rámci zamýšlené proxy politiky a uchovejte identitu požadavku spolu s pozorováním. Rotující middleware může pozdější kontrole dát jiný koncový bod.
Přesměrování vytvářejí také další požadavek. Konečná metadata popisují tuto fázi; prohlédněte historii přesměrování a případný nový výběr middlewarem, místo abyste je brali jako důkaz trasy prvního URL.