Scrapy shell के अंदर, वह अनुरोध बनाएँ जिसे आप डाउनलोडर से करवाना चाहते हैं:

from scrapy import Request

fetch(Request(
    "https://www.example.com/",
    meta={"proxy": "http://proxy.example:8080"},
))
response.status

HttpProxyMiddleware उस Request के मेटाडेटा से प्रॉक्सी मान पढ़ता है। इसे सक्रिय डाउनलोडर मिडलवेयर कॉन्फ़िगरेशन में सक्षम होना चाहिए। इसके बाद का response चर इस fetch का है। इस सार्वजनिक URL के लिए, यदि सार्वजनिक मध्यस्थ अनुमत हैं तो HTTP प्रॉक्सी सूची से बिना प्रमाणीकरण वाला HTTP पता चुनें, फिर उसका URL उस अनुरोध के प्रॉक्सी मेटाडेटा में रखें।

Scrapy प्रोजेक्ट से shell शुरू करने पर यह उस प्रोजेक्ट का कॉन्फ़िगरेशन लोड कर सकता है। यह मिडलवेयर और अन्य सेटिंग्स चुनता है; यह स्वयं कोई विशिष्ट प्रॉक्सी एंडपॉइंट नहीं चुनता। ऊपर दिया गया अनुरोध मेटाडेटा वह चयन सीधे प्रदान करता है।

Basic क्रेडेंशियल का उपयोग करने वाले प्रॉक्सी के लिए, Scrapy प्रॉक्सी URL में उपयोगकर्ता जानकारी दर्ज करता है। इसे बनाने से पहले खाते के घटकों में आरक्षित वर्णों को एन्कोड करें। उस खाते के लिए वेबसाइट Authorization हेडर जोड़ने की आवश्यकता नहीं है।

Scrapy अपने समर्थित पर्यावरण चर से भी प्रॉक्सी खोज सकता है। किसी अनुरोध के स्पष्ट प्रॉक्सी मेटाडेटा को प्राथमिकता मिलती है। जानबूझकर सीधे अनुरोध के लिए, None प्रॉक्सी मान उस मिडलवेयर के पर्यावरण-आधारित चयन को अनुरोध के लिए अक्षम कर देता है।

संबंधित लेख