Python Requests मा प्रोक्सी कसरी प्रयोग गर्ने (HTTP/HTTPS र Session pooling)
Updated:
Python को requests लाइब्रेरीले दुवै 'http' र 'https' स्किमहरूलाई http://user:pass@ip:port मा म्याप गर्ने proxies डिक्सनरी मार्फत अथेन्टिकेटेड VinaProxy प्रोक्सीहरू स्वीकार गर्दछ। सो डिक्सनरीलाई निरन्तर requests.Session() मा जोड्दा छिटो र कम ओभरहेड भएको वेब स्क्र्यापिङका लागि अन्तर्निहित TCP सकेटहरू पुन: प्रयोग हुन्छन्।
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP₫ ४०,०००
- 5+ IP हरू₫ ३५,०००
- 10+ IP हरू₫ २५,०००
- 20+ IP हरू₫ २५,०००
- 50+ IP हरू₫ २५,०००
- 100+ IP हरू₫ २५,०००
- 200+ IP हरू₫ २५,०००
- 500+ IP हरू₫ २५,०००
- 1000+ IP हरू₫ २२,०००
- 2000+ IP हरू₫ २०,०००
- 1 IP₫ ४०,०००
- 5+ IP हरू₫ ३५,०००
- 10+ IP हरू₫ २५,०००
- 20+ IP हरू₫ २५,०००
- 50+ IP हरू₫ २५,०००
- 100+ IP हरू₫ २५,०००
- 200+ IP हरू₫ २५,०००
- 500+ IP हरू₫ २५,०००
- 1000+ IP हरू₫ २२,०००
- 2000+ IP हरू₫ २०,०००
proxies डिक्सनरी फर्म्याट गर्ने र Sessions पुन: प्रयोग गर्ने
प्रत्येक URL मा requests.get() कल गर्दा हरेक पटक नयाँ TCP कनेक्सन र TLS ह्यान्डशेक सिर्जना हुन्छ। आफ्नो प्रोक्सीलाई session = requests.Session() सँग बाइन्ड गर्नाले लगातारका अनुरोधहरूमा प्रोक्सी टनेल खुला रहन्छ।
| Requests प्यारामिटर | सिफारिस गरिएको सिन्ट्याक्स | प्राविधिक उद्देश्य |
|---|---|---|
'http' key | 'http://user:pass@ip:port' | प्रोक्सी मार्फत सामान्य HTTP अनुरोधहरू पठाउँछ |
'https' key | 'http://user:pass@ip:port' | http:// स्किम प्रयोग गर्दछ ताकि urllib3 ले TLS का लागि HTTP CONNECT टनेल जारी गरोस् |
timeout tuple | timeout=(5, 15) | 5s को कनेक्ट टाइमआउट र 15s को रिड टाइमआउटले वर्कर थ्रेडहरू रोकिनबाट बचाउँछ |
| Pool rotation | itertools.cycle(proxy_list) | तपाईंको डेडिकेटेड स्ट्याटिक IP पुलमा समान रूपमा चक्र घुमाउँछ |
सामान्य urllib3 र ProxyError का समस्याहरूबाट बच्ने उपाय
- जबसम्म तपाईंको प्रोक्सी पोर्टलाई स्पष्ट रूपमा TLS-over-TLS आवश्यक पर्दैन, तबसम्म दुवै
'http'र'https'डिक्सनरी किहरूका लागि प्रोक्सी URL स्किमको रूपमा सधैंhttp://(https://होइन) प्रयोग गर्नुहोस् urllib.parse.quote(password, safe='')प्रयोग गरेर पासवर्डमा भएका विशेष क्यारेक्टरहरूलाई URL-encode गर्नुहोस्407 Proxy Authentication Requiredत्रुटिको अर्थ तपाईंको URL स्ट्रिङमा भएको प्रयोगकर्ता नाम वा पासवर्ड तपाईंको ड्यासबोर्ड विवरणसँग मेल खाएन भन्ने हुन्छhttpx.Client(proxy='http://user:pass@ip:port')रaiohttpsession.get(url, proxy=...)सँग पनि ठ्याक्कै उस्तै गरी काम गर्दछ
चरणबद्ध प्रक्रिया
- 1
ip:port:user:pass लाई URL सिन्ट्याक्समा रूपान्तरण गर्नुहोस्
तपाईंको VinaProxy सूचीलाई
http://user:pass@ip:portस्ट्रिङमा बदल्न हाम्रो Proxy Format Converter प्रयोग गर्नुहोस्। - 2
proxies डिक्सनरी परिभाषित गर्नुहोस्
तपाईंको Python स्क्रिप्टमा
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}सेट गर्नुहोस्। - 3
requests.Session() इन्स्ट्यान्समा जोड्नुहोस्
निरन्तर
Keep-Aliveपुलिङका लागिs = requests.Session()सुरु गर्नुहोस् र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 स्क्र्यापिङ स्क्रिप्टहरूमा ब्यान्डविथ सीमित गर्छ?
गर्दैन। सबै Dedicated IPv4 र Static ISP योजनाहरूमा असीमित मासिक ट्राफिक समावेश छ।
असीमित Python स्क्र्यापिङ पुल बनाउनुहोस्
7 देशहरूमा तत्काल Dedicated IPv4 र Static ISP प्रोक्सीहरू।
Python प्रोक्सीहरू किन्नुहोस्