एक स्पाइडर 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 प्रॉक्सी मान के लिए उम्मीदवार देती है।

लॉन्चर की लोड की गई सेटिंग्स और सक्रिय मिडलवेयर की कमांड-लाइन रन से तुलना करें। यदि वे मेल खाते हैं, तो चुने गए अनुरोध के प्रॉक्सी मेटाडेटा और वास्तविक परिवहन त्रुटि के साथ आगे बढ़ें।

संबंधित लेख