Leximi i pikës fundore të proxy-t dhe IP-së së lidhjes në Scrapy
Përdorni metadatat e kërkesës për proxy-n e zgjedhur, trajtoni response.ip_address si informacion për peer-in e dhënë nga handler-i dhe verifikoni IP-në e daljes në destinacion.
Për të ekzaminuar rrugën e zgjedhur, përdorni Request-in e lidhur me përgjigjen e përfunduar. Mbani tre vëzhgime të ndara:
| Fusha | Kuptimi |
|---|---|
response.request.meta.get('proxy') | URL-ja e proxy-t të zgjedhur të kësaj kërkese, kur ekziston |
response.ip_address | Adresa e dhënë nga handler-i i shkarkimit, ndoshta None |
| Raporti i burimit nga një destinacion i besuar | Burimi publik i vëzhguar atje |
Brenda një callback, hiqni nga diagnostika rutinë pjesët e URL-së me kredenciale:
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,
)Në handler-in HTTP/1.1 të Scrapy 2.13.3 adresa vjen nga peer-i i lidhjes së përgjigjes, jo nga një shërbim i IP-së së daljes. Disa shtigje, përfshirë përgjigjet me gjatësi zero, mund ta lënë None. Handler-ë të tjerë mund ta plotësojnë ndryshe. None në vetvete nuk provon rrugëtim të drejtpërdrejtë.
Për një kontroll daljeje, pyesni një pikë fundore të besuar sipas politikës së synuar të proxy-t dhe mbani identitetin e kërkesës bashkë me vëzhgimin. Middleware rrotullues mund t'i japë një kontrolli të mëvonshëm një pikë tjetër fundore.
Edhe ridrejtimet krijojnë një kërkesë tjetër. Metadatat përfundimtare përshkruajnë atë fazë; shqyrtoni historikun e ridrejtimeve dhe çdo rizgjedhje nga middleware, në vend që ta merrni si provë të rrugës së URL-së së parë.