డిఫాల్ట్‌గా, Scrapy అభ్యర్థన URL యొక్క డొమైన్ నుండి డౌన్‌లోడ్ స్లాట్‌లను కేటాయిస్తుంది. అభ్యర్థనకు HTTP ప్రాక్సీ ఇవ్వడం ఆ URL ను ప్రాక్సీ యొక్క హోస్ట్‌నేమ్‌గా మార్చదు. అందువల్ల వివిధ సైట్‌లకు వెళ్లే అభ్యర్థనలు ఒకే మధ్యవర్తిని పంచుకుంటూనే వేర్వేరు స్లాట్‌లను ఉంచుకోగలవు.

AutoThrottle గమనించిన డౌన్‌లోడ్ ఆలస్యాన్ని ఉపయోగించి ప్రతి స్లాట్ ఆలస్యాన్ని సర్దుబాటు చేస్తుంది. ప్రామాణిక ప్రతి-డొమైన్ సమకాలిక పరిమితి మరియు కనీస డౌన్‌లోడ్ ఆలస్యం ఇప్పటికీ వర్తిస్తాయి.

అల్గోరిథంను మార్చే ముందు సమూహీకరణను తనిఖీ చేయండి

అనుకూల మిడిల్‌వేర్ request.meta["download_slot"] కేటాయించి సాధారణ స్లాట్ ఎంపికను అధిగమించగలదు. కొన్ని ప్రాక్సీ పొడిగింపులు తమ స్వంత సమూహీకరణను ఉపయోగిస్తాయి. సంబంధం లేని సైట్‌లు ఒకే నియంత్రికను పంచుకుంటున్నట్లు కనిపిస్తే ఆ సెట్టింగ్‌లను పరిశీలించండి.

దీనికి విరుద్ధంగా, ప్రతి ప్రాక్సీకి వేరే స్లాట్ కేటాయించడం వల్ల అనేక ప్రాక్సీలు ఒకే సమయంలో ఒకే లక్ష్యాన్ని సంప్రదించగలవు. ఇది క్రాలర్ గౌరవించాల్సిన సైట్-వ్యాప్త పరిమితిని బలహీనపరచవచ్చు. రక్షించబడే వనరు ప్రకారం స్లాట్ కీని ఎంచుకోండి.

ఆలస్యంలో మీరు ఉపయోగించిన మార్గం ఉంటుంది

Scrapy అభ్యర్థనను పంపినప్పటి నుండి HTTP హెడర్లు అందుకునే వరకు ఆలస్యాన్ని కొలుస్తుంది. ప్రాక్సీ ద్వారా ప్రయాణించే అభ్యర్థన ఆ పరిశీలనలో మధ్యవర్తి క్యూ మరియు ఫార్వార్డింగ్ ఆలస్యాన్ని చేర్చవచ్చు. AutoThrottle మూలానికి మాత్రమే ప్రత్యేక ప్రాసెసింగ్ సమయాన్ని పొందదు.

సమకాలికతను పెంచడం ఆ కొలతను సైట్‌ను వేరుచేసేలా చేయలేదు. రెండూ ముఖ్యమైనప్పుడు లక్ష్యం పట్ల మర్యాదను మరియు ప్రాక్సీ సామర్థ్యాన్ని వేర్వేరు పరిమితులుగా ఉంచండి. పంచుకున్న ప్రాక్సీకి లక్ష్య స్లాట్‌ల అంతటా అదనపు సమకాలిక బడ్జెట్ అవసరం కావచ్చు, ప్రతి లక్ష్యం తన సొంత రేటు విధానాన్ని ఉంచుకుంటుంది.

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