Requests का उपयोग करके Python में प्रॉक्सी रोटेशन कैसे करें

8 सितम्बर 2025
3 मिनट पढ़ें
AI द्वारा जनरेट किया गया सारांश:

जब किसी वेबसाइट को पार्स करते हैं या अनुरोध भेजते हैं, तो तकनीकी सीमाओं और साइट की ओर से संभावित ब्लॉकिंग के तहत स्थिर संचालन बनाए रखना अक्सर आवश्यक होता है। इसे प्राप्त करने के सबसे प्रभावी तरीकों में से एक है Python में प्रॉक्सी को रोटेट करना। जैसा कि पहले प्रॉक्सी रोटेशन क्या है के संदर्भ में चर्चा की गई थी, यह दृष्टिकोण प्रत्येक अनुरोध या निश्चित अंतराल पर IP पता बदलने की अनुमति देता है, जिससे कैप्चा से बचने और संसाधन-थोपे गए सीमाओं को पार करने से रोका जा सकता है। यह सामग्री लोकप्रिय requests लाइब्रेरी का उपयोग करके इस तरह का रोटेशन कैसे लागू करें, इसे समझाएगी।

Python में प्रॉक्सी रोटेशन: चरण-दर-चरण मार्गदर्शिका

सबसे पहले, वेब स्क्रैपिंग के लिए प्रॉक्सी की एक सूची की आवश्यकता होगी। इन्हें निःशुल्क संसाधनों पर पाया जा सकता है, हालांकि यह समझना चाहिए कि ऐसे मध्यस्थ अक्सर अविश्वसनीय, धीमे, अस्थिर और बार-बार ब्लॉकिंग के शिकार होते हैं। गंभीर कार्यों के लिए, सत्यापित प्रदाताओं से समाधान का उपयोग करने की सिफारिश की जाती है। सबसे सुविधाजनक तरीका है उन्हें एक साधारण टेक्स्ट फ़ाइल में या एक Python सूची के रूप में संग्रहीत करना:


proxies = [
    'http://user:pass@proxy1.com:8080',
    'http://user:pass@proxy2.com:8080',
    'http://proxy3.com:8080',  # बिना प्रमाणीकरण के
]

Python में requests का उपयोग करके प्रॉक्सी रोटेशन का एक उदाहरण यहां दिया गया है। नए IP के माध्यम से अनुरोध भेजने के लिए, requests.get() या requests.post() में proxies पैरामीटर का उपयोग किया जाता है:


import requests
import random

proxy = random.choice(proxies)
response = requests.get('https://example.com', proxies={'http': proxy, 'https': proxy})

रोटेशन के कई दृष्टिकोण हैं:

  1. रैंडम चयन – random.choice() का उपयोग करके।
  2. अनुक्रमिक साइक्लिंग – सूची को इंडेक्स द्वारा या एक इटरेटर के माध्यम से दोहराना।
  3. फ़िल्टर किया गया चयन – उदाहरण के लिए, केवल कार्यरत या सबसे तेज़ मध्यस्थों का उपयोग करना।

त्रुटि प्रबंधन को लागू किया जाना चाहिए, उदाहरण के लिए, टाइमआउट या प्रॉक्सी विफलताओं के लिए। ऐसे मामलों में, एक दोषपूर्ण IP को अस्थायी रूप से सूची से हटाया जा सकता है:


try:
    response = requests.get('https://example.com', proxies={'http': proxy, 'https': proxy}, timeout=5)
except requests.exceptions.RequestException:
    proxies.remove(proxy)

ये Python में प्रॉक्सी रोटेशन के लिए सर्वोत्तम प्रथाएं हैं, जिन्हें आसानी से किसी भी परिदृश्य के अनुरूप स्केल किया जा सकता है। निम्नलिखित अनुभाग व्यावहारिक सुझावों, सामान्य गलतियों और Python में प्रभावी ढंग से प्रॉक्सी रोटेट करने के तरीकों को कवर करेंगे।

Python में प्रॉक्सी रोटेशन के लिए सुझाव और सर्वोत्तम प्रथाएं

स्थिर और कुशल संचालन के लिए Python में प्रॉक्सी रोटेट करने के लिए, कई व्यावहारिक सिफारिशों का पालन करना महत्वपूर्ण है।

  1. केवल मध्यस्थों को ही नहीं बल्कि User-Agent को भी रोटेट करें।

अधिकांश वेबसाइटें केवल IP पते का ही नहीं बल्कि ब्राउज़र हेडर्स का भी विश्लेषण करती हैं। यदि हर अनुरोध एक ही User-Agent के साथ भेजा जाता है, तो यह जल्दी ही संदेह उठाएगा। इसलिए, हेडर्स को गतिशील रूप से उत्पन्न करना उचित है, उदाहरण के लिए:


headers_list = [
    {'User-Agent': 'Mozilla/5.0 ...'},
    {'User-Agent': 'Chrome/114.0 ...'},
    # अधिक विकल्प जोड़ें
]

headers = random.choice(headers_list)
response = requests.get(url, headers=headers, proxies={'http': proxy, 'https': proxy})
  1. प्रमाणीकरण डेटा को सही ढंग से पास करें।

कुछ IPs को उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होती है। ऐसे मामलों में, यह तुरंत सत्यापित करना बेहतर होता है कि प्रमाण-पत्र URL में शामिल हैं और उचित प्रारूप (http://user:pass@proxy:port) का उपयोग करें। गलत प्रमाणीकरण रोटेशन त्रुटियों के सबसे सामान्य कारणों में से एक है।

  1. अनुकूली चयन तर्क का उपयोग करें।

मध्यस्थों को अंधाधुंध रैंडम तरीके से चुनने के बजाय, उनकी स्थिरता का इतिहास ध्यान में रखें। उदाहरण के लिए, इस बात पर सरल आँकड़े बनाए रखें कि प्रत्येक IP के माध्यम से कितने अनुरोध सफल हुए और अधिक स्थिर विकल्पों को प्राथमिकता दें।

Python में प्रॉक्सी रोटेशन समस्याओं का निवारण

ऐसा रोटेशन हमेशा सहज प्रक्रिया नहीं होती। व्यवहार में, कई सामान्य कठिनाइयाँ उत्पन्न हो सकती हैं, और यहाँ बताया गया है कि उन्हें कैसे संबोधित किया जाए।

  1. कनेक्शन विफलताएँ और टाइमआउट।

यदि नया कनेक्शन IP प्रतिक्रिया देना बंद कर देता है या बहुत अधिक समय लेता है, तो अनुरोध अटक सकता है। हमेशा requests.get() में एक टाइमआउट पैरामीटर सेट करें और try/except का उपयोग करके अपवादों को संभालें। यह भी सलाह दी जाती है कि लगातार कई विफलताओं के बाद किसी को पूल से हटा दें।

  1. प्रॉक्सी CSRF टोकन त्रुटि।

कभी-कभी CSRF टोकन से संबंधित एक लॉन्च त्रुटि होती है। संभावित कारणों में एक अमान्य CSRF टोकन, कुकीज़ का खो जाना या संशोधन शामिल हैं। इस समस्या को ठीक करने के लिए, जांचें कि क्या कुकीज़ की अनुमति है और सुनिश्चित करें कि उन्हें अधिलेखित नहीं किया गया है। यदि सुरक्षित कुकीज़ का उपयोग किया जाता है, तो वे HTTP के साथ काम नहीं करते – प्रॉक्सी को HTTPS के लिए कॉन्फ़िगर किया जाना चाहिए।

  1. लक्ष्य साइट से ब्लॉकिंग।

मध्यस्थों के साथ भी, एक वेबसाइट संदिग्ध गतिविधि का पता लगा सकती है, जो कैप्चा, दर सीमाओं, कम गति, या पूर्ण IP प्रतिबंधों के रूप में प्रकट होती है। ऐसे मामलों में, रोटेशन में केवल IP ही नहीं बल्कि हेडर्स भी शामिल होने चाहिए, साथ ही अनुरोधों के बीच विलंब (रेट लिमिटिंग) भी पेश करना चाहिए।

निष्कर्ष

Python में IP रोटेशन स्थिर और सुरक्षित अनुरोध स्वचालन के लिए एक मौलिक फिर भी अत्यंत महत्वपूर्ण तकनीक है। यह प्रतिबंधों और ब्लॉकिंग के तहत लगातार संचालन की अनुमति देता है, आवश्यक डेटा को अनावश्यक बाधाओं के बिना एकत्र करने में सक्षम बनाता है।

इसके लिए न केवल पर्याप्त प्रॉक्सी सूची तैयार करना आवश्यक है बल्कि अच्छी तरह से डिज़ाइन की गई तर्क को भी लागू करना आवश्यक है: इसके प्रकारों पर विचार करना, त्रुटियों को संभालना, User-Agent रोटेशन को एकीकृत करना और सावधानीपूर्वक रोटेशन रणनीति का चयन करना – चाहे वह रैंडम हो या अनुकूली।

लेख की सामग्री: