स्पायडर scrapy crawl अंतर्गत अपेक्षित प्रॉक्सी वापरू शकतो आणि Python स्क्रिप्टने सुरू केल्यावर थेट जातो. प्रॉक्सी सर्व्हर बदलण्यापूर्वी ती स्क्रिप्ट आपली सेटिंग्ज कशी तयार करते ते तपासा.

विद्यमान Scrapy प्रकल्प आणि त्याच्या नोंदणीकृत स्पाइडरसाठी:

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

settings = get_project_settings()
process = CrawlerProcess(settings=settings)
process.crawl('catalog')
process.start()

catalog च्या जागी प्रकल्पाच्या स्पायडरचे नाव द्या. प्रकल्प त्याच्या scrapy.cfg मधून, किंवा आयात करण्यायोग्य सेटिंग्ज मॉड्यूलकडे निर्देश करणाऱ्या योग्यरित्या सेट केलेल्या SCRAPY_SETTINGS_MODULE मधून शोधण्यायोग्य असावा.

फक्त CrawlerProcess() तयार केल्याने प्रकल्पाची सेटिंग्ज फाइल आयात होत नाही, कारण स्क्रिप्ट स्पायडर क्लासही आयात करते एवढ्यासाठी नाही. त्यामुळे DOWNLOADER_MIDDLEWARES ने सक्षम केलेले सानुकूल मिडलवेअर त्या रनमध्ये अनुपस्थित असू शकते.

सेटिंग्ज लोड केल्याने संरचित घटक मिळतात; ते प्रॉक्सी पत्ता तयार करत नाही. Scrapy च्या HTTP प्रॉक्सी मिडलवेअरला अजूनही त्याचा नेहमीचा पर्यावरण प्रॉक्सी किंवा स्पष्ट request.meta['proxy'] मूल्य आवश्यक आहे. HTTPPROXY_ENABLED ने ते अक्षम केले नाही याची खात्री करा. अनुमत सार्वजनिक पृष्ठ क्रॉलसाठी HTTP प्रॉक्सी यादी त्या मेटाडेटा किंवा पर्यावरणातून दिल्या जाणाऱ्या HTTP प्रॉक्सी मूल्यासाठी उमेदवार देते.

लाँचरच्या लोड केलेल्या सेटिंग्ज आणि सक्रिय मिडलवेअरची कमांड-लाइन रनशी तुलना करा. जर ते जुळत असतील, तर निवडलेल्या विनंतीच्या प्रॉक्सी मेटाडेटा आणि प्रत्यक्ष वाहतूक त्रुटीसह पुढे जा.

संबंधित लेख