Lees Scrapy se proxy-eindpunt en verbindings-IP
Gebruik die navraagmetadata vir die gekose proxy, behandel response.ip_address as eweknie-inligting van die hanteerder, en verifieer die uitgangs-IP by die bestemming.
Gebruik die Request wat aan die voltooide antwoord gekoppel is wanneer jy die gekose roete ondersoek. Hou drie waarnemings apart:
| Veld | Betekenis |
|---|---|
response.request.meta.get('proxy') | Die gekose proxy-URL van hierdie navraag, indien aanwesig |
response.ip_address | Adres wat deur die aflaai-hanteerder verskaf word, moontlik None |
| Die bronverslag van 'n vertroude bestemming | Die publieke bron wat daar waargeneem is |
Laat binne 'n terugroepfunksie die URL-dele met geloofsbriewe uit roetine-diagnostiek weg:
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,
)In Scrapy 2.13.3 se HTTP/1.1-hanteerder kom die adres van die antwoord se verbinding-eweknie, nie van 'n uitgangs-IP-diens nie. Sommige paaie, insluitend antwoorde met lengte nul, kan dit None laat. Ander hanteerders kan dit anders vul. None bewys op sigself nie direkte roetering nie.
Vir 'n uitgangskontrole, vra 'n vertroude eindpunt binne die beoogde proxybeleid en hou die navraag se identiteit by die waarneming. Roterende middleware kan 'n latere kontrole 'n ander eindpunt gee.
Herverwysings skep ook nog 'n navraag. Finale metadata beskryf daardie stadium; ondersoek herverwysingsgeskiedenis en enige herkeuse deur middleware eerder as om dit as bewys van die eerste URL se roete te gebruik.