ఎంచుకున్న మార్గాన్ని పరిశీలించడానికి, పూర్తయిన ప్రతిస్పందనతో అనుసంధానించిన Request ను ఉపయోగించండి. మూడు పరిశీలనలను వేరుగా ఉంచండి:

క్షేత్రంఅర్థం
response.request.meta.get('proxy')ఈ అభ్యర్థన యొక్క ఎంచుకున్న ప్రాక్సీ URL, ఉన్నప్పుడు
response.ip_addressడౌన్లోడ్ హ్యాండ్లర్ అందించే చిరునామా, None కావచ్చు
నమ్మదగిన గమ్యస్థానం నుండి మూల నివేదికఅక్కడ గమనించిన ప్రజా మూలం

కాల్బ్యాక్ లోపల, ఆధారాలతో కూడిన URL భాగాలను సాధారణ నిర్ధారణ నుండి తొలగించండి:

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 హ్యాండ్లర్లో చిరునామా ప్రతిస్పందన కనెక్షన్ పీర్ నుండి వస్తుంది, ఎగ్జిట్-IP సేవ నుండి కాదు. కొన్ని మార్గాలు, సున్నా-పొడవు ప్రతిస్పందనలతో సహా, దాన్ని None గా వదిలేయవచ్చు. ఇతర హ్యాండ్లర్లు దాన్ని వేరే విధంగా నింపవచ్చు. None తనంతట తాను నేరుగా రూటింగ్ను నిరూపించదు.

ఎగ్జిట్ తనిఖీ కోసం, ఉద్దేశించిన ప్రాక్సీ విధానం కింద నమ్మదగిన ఎండ్‌పాయింట్‌ను అడగండి మరియు అభ్యర్థన గుర్తింపును పరిశీలనతో పాటు ఉంచండి. తిరిగే మిడిల్వేర్ తర్వాతి తనిఖీకి మరో ఎండ్‌పాయింట్ ఇవ్వవచ్చు.

మళ్లింపులు మరో అభ్యర్థనను కూడా సృష్టిస్తాయి. తుది మెటాడేటా ఆ దశను వివరిస్తుంది; మొదటి URL మార్గానికి రుజువుగా పరిగణించే బదులు మళ్లింపు చరిత్రను మరియు మిడిల్వేర్ ఏదైనా పునఃఎంపికను పరిశీలించండి.

సంబంధిత వ్యాసాలు