Python Requests में प्रॉक्सी कैसे उपयोग करें (HTTP/HTTPS और Session पूलिंग)
अपडेट किया गया:
Python की requests लाइब्रेरी एक proxies डिक्शनरी के माध्यम से प्रमाणित VinaProxy प्रॉक्सी स्वीकार करती है, जो 'http' और 'https' दोनों स्कीम्स को http://user:pass@ip:port से मैप करती है। उस डिक्शनरी को एक स्थायी requests.Session() से जोड़ने से अंतर्निहित TCP सॉकेट का पुन: उपयोग होता है, जिससे तेज़ और कम लोड वाला वेब स्क्रैपिंग संभव होता है।
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP₫40,000
- 5+ IP₫35,000
- 10+ IP₫25,000
- 20+ IP₫25,000
- 50+ IP₫25,000
- 100+ IP₫25,000
- 200+ IP₫25,000
- 500+ IP₫25,000
- 1000+ IP₫22,000
- 2000+ IP₫20,000
- 1 IP₫40,000
- 5+ IP₫35,000
- 10+ IP₫25,000
- 20+ IP₫25,000
- 50+ IP₫25,000
- 100+ IP₫25,000
- 200+ IP₫25,000
- 500+ IP₫25,000
- 1000+ IP₫22,000
- 2000+ IP₫20,000
proxies डिक्शनरी का प्रारूप और Sessions का पुन: उपयोग
प्रत्येक URL पर अलग से requests.get() कॉल करने से हर बार एक नया TCP कनेक्शन और TLS हैंडशेक बनता है। अपने प्रॉक्सी को session = requests.Session() से बांधने से लगातार आने वाले अनुरोधों के दौरान प्रॉक्सी टनल खुली रहती है।
| Requests पैरामीटर | अनुशंसित सिंटैक्स | तकनीकी उद्देश्य |
|---|---|---|
'http' की | 'http://user:pass@ip:port' | सामान्य HTTP अनुरोधों को प्रॉक्सी से रूट करता है |
'https' की | 'http://user:pass@ip:port' | http:// स्कीम का उपयोग करता है ताकि urllib3 TLS के लिए HTTP CONNECT टनल बनाए |
timeout टपल | timeout=(5, 15) | 5 सेकंड कनेक्ट और 15 सेकंड रीड टाइमआउट वर्कर थ्रेड्स को अटकने से रोकता है |
| पूल रोटेशन | itertools.cycle(proxy_list) | आपके डेडिकेटेड स्टैटिक IP पूल पर अनुरोधों को समान रूप से बांटता है |
urllib3 और ProxyError की सामान्य गलतियों से बचाव
'http'और'https'दोनों डिक्शनरी की के लिए प्रॉक्सी URL स्कीम के रूप में हमेशाhttp://(https://नहीं) का उपयोग करें, जब तक कि आपका पोर्ट स्पष्ट रूप से TLS-over-TLS की मांग न करे- पासवर्ड में विशेष वर्णों को
urllib.parse.quote(password, safe='')का उपयोग करके URL-एनकोड करें 407 Proxy Authentication Requiredत्रुटि का अर्थ है कि आपके URL स्ट्रिंग का यूज़रनेम या पासवर्ड डैशबोर्ड विवरण से मेल नहीं खाता- यह
httpx.Client(proxy='http://user:pass@ip:port')औरaiohttpकेsession.get(url, proxy=...)के साथ भी पूरी तरह समान रूप से काम करता है
स्टेप बाय स्टेप
- 1
ip:port:user:pass को URL सिंटैक्स में बदलें
अपनी VinaProxy सूची को
http://user:pass@ip:portस्ट्रिंग्स में बदलने के लिए हमारे प्रॉक्सी फॉर्मेट कनवर्टर का उपयोग करें। - 2
proxies डिक्शनरी परिभाषित करें
अपनी Python स्क्रिप्ट में
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}सेट करें। - 3
requests.Session() इंस्टेंस से जोड़ें
s = requests.Session()शुरू करें और स्थायीKeep-Aliveपूलिंग के लिएs.proxies.update(proxies)कॉल करें। - 4
टेस्ट रिक्वेस्ट से एग्जिट IP सत्यापित करें
सक्रिय प्रॉक्सी IP की पुष्टि के लिए
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())चलाएं।
अक्सर पूछे जाने वाले प्रश्न
'https' की भी 'http://user:pass@ip:port' का उपयोग क्यों करती है?
http:// उपसर्ग urllib3 को यह बताता है कि प्रॉक्सी सर्वर से स्वयं कैसे कनेक्ट होना है (मानक HTTP CONNECT के माध्यम से), जबकि लक्षित https:// वेबसाइट पर आपका ट्रैफ़िक पूरी तरह से TLS-एन्क्रिप्टेड रहता है।
Python में अनुरोधों के दौरान 25 स्टैटिक प्रॉक्सी को कैसे रोटेट करें?
अपने 25 प्रॉक्सी URL को pool = itertools.cycle(PROXIES) में लोड करें और प्रति-IP दर सीमा का ध्यान रखते हुए प्रत्येक अनुरोध में proxies={'http': p, 'https': p} पास करें।
क्या VinaProxy Python स्क्रैपिंग स्क्रिप्ट पर बैंडविड्थ सीमित करता है?
नहीं। सभी डेडिकेटेड IPv4 और स्टैटिक ISP प्लान में असीमित मासिक डेटा ट्रैफ़िक शामिल है।
असीमित बैंडविड्थ वाला Python स्क्रैपिंग पूल बनाएं
7 देशों में तत्काल डेडिकेटेड IPv4 और स्टैटिक ISP प्रॉक्सी।
Python प्रॉक्सी खरीदें