सिर्फ़ http key सेट है
key टारगेट के scheme का नाम है, प्रॉक्सी के scheme का नहीं। सिर्फ़ http वाली dictionary सादा HTTP प्रॉक्सी से भेजती है और हर HTTPS कॉल को सीधे बाहर जाने देती है, और आपको बताने के लिए कोई error नहीं आता।
requests को एक स्टैटिक ISP पते पर भेजें: किसी नामित इंटरनेट प्रोवाइडर के नेटवर्क पर एक अकेला IP, जो उस अवधि तक आपका रहता है जिसके लिए आप भुगतान करते हैं। नीचे दिया कोड पब्लिश करने से पहले ऑथेंटिकेशन वाली प्रॉक्सी पर चलाकर देखा गया।
संक्षेप में: http और https दोनों key वाली एक proxies dictionary दें, हर key की वैल्यू http://USERNAME:PASSWORD@HOST:PORT हो, और requests कॉल को प्रॉक्सी से होकर भेजेगा; HTTPS टारगेट उसमें से टनल के रूप में गुज़रते हैं। SOCKS5 के लिए requests[socks] इंस्टॉल करें, अपने ऑर्डर पर प्रॉक्सी को SOCKS5 पर स्विच करें और socks5h scheme इस्तेमाल करें, ताकि hostname आपकी मशीन की जगह प्रॉक्सी resolve करे।
Python requests अपनी प्रॉक्सी एक dictionary से लेता है, जो टारगेट URL के scheme को एक प्रॉक्सी URL से जोड़ती है। यह गाइड एक स्टैटिक ISP पते के लिए वह dictionary सेट करती है और वे तीन जगह दिखाती है जहाँ वह रह सकती है: किसी कॉल पर, किसी session पर, या environment में।
ज़्यादातर प्रॉक्सी, हमारी भी, यूज़रनेम और पासवर्ड माँगती हैं। requests इन्हें प्रॉक्सी URL से पढ़ता है और हर कनेक्शन पर प्रॉक्सी को भेजता है। HTTPS टारगेट के लिए प्रॉक्सी एक टनल खोलती है और request की सामग्री कभी नहीं देखती। कोड टैब हर request वाला और session वाला रूप दिखाते हैं।
Host, port, यूज़रनेम और पासवर्ड, डैशबोर्ड के मेरे प्रॉक्सी से या API में ऑर्डर से। हर पते की अपनी चार वैल्यू होती हैं; कोई साझा गेटवे नहीं है।
http://USERNAME:PASSWORD@HOST:PORT. अगर पासवर्ड में /, ?, # या % है, तो पहले उसे urllib.parse.quote(password, safe="") से URL-encode करें।
http और https दोनों key को एक ही URL दें। सिर्फ़ http सेट होने पर हर HTTPS request प्रॉक्सी को छोड़ देती है और आपके अपने पते से निकलती है।
ऐसे पेज पर request भेजें जो कॉल करने वाले का IP दिखाता हो, या उसी प्रॉक्सी से What Is My IP खोलें, और पक्का करें कि यह वही पता है जो आपने खरीदा।
हमेशा timeout= दें: डिफ़ॉल्ट रूप से requests हमेशा इंतज़ार करता रहता है, और तब अटका हुआ कनेक्शन रुकी हुई स्क्रिप्ट जैसा दिखता है।
import requests
# The four values come with your order (dashboard or API)
proxy = "http://USERNAME:PASSWORD@HOST:PORT"
response = requests.get(
"https://example.com/",
proxies={"http": proxy, "https": proxy},
timeout=30,
)
response.raise_for_status()
print(response.status_code)
import requests
proxy = "http://USERNAME:PASSWORD@HOST:PORT"
with requests.Session() as session:
# HTTP_PROXY / HTTPS_PROXY in the environment would override
# session.proxies; this makes the session use only its own setting.
session.trust_env = False
session.proxies.update({"http": proxy, "https": proxy})
response = session.get("https://example.com/", timeout=30)
response.raise_for_status()
print(response.status_code)
# pip install "requests[socks]"
import requests
# Switch the proxy to SOCKS5 first; use the values the order then shows.
# socks5h: the proxy resolves the hostname, not your machine.
proxy = "socks5h://USERNAME:PASSWORD@HOST:PORT"
response = requests.get(
"https://example.com/",
proxies={"http": proxy, "https": proxy},
timeout=30,
)
response.raise_for_status()
print(response.status_code)
हर सैंपल यूज़रनेम और पासवर्ड के साथ HTTP प्रॉक्सी से कनेक्ट होता है, सिवाय SOCKS5 वाले के, जिसके लिए पहले प्रॉक्सी को SOCKS5 पर स्विच करना पड़ता है; उसके बाद ऑर्डर इस्तेमाल के लिए नया port और नए क्रेडेंशियल दिखाता है। बड़े अक्षरों वाली चार वैल्यू की जगह अपने ऑर्डर की वैल्यू डालें।
| दायरा | क्रेडेंशियल | कब इस्तेमाल करें | |
|---|---|---|---|
| कॉल पर proxies= | सिर्फ़ वही एक request | URL में | कुछ ही कॉल वाली स्क्रिप्ट |
| Session.proxies | session की हर request | URL में | इससे लंबा कुछ भी, trust_env को False करके |
| HTTP_PROXY और HTTPS_PROXY | प्रोसेस की हर requests कॉल | URL में | ऐसा कोड जिसे आप बदल नहीं सकते; NO_PROXY छोड़े जाने वाले host बताता है |
| socks5h:// URL | जिस भी दायरे पर सेट हो | URL में | जब hostname प्रॉक्सी पर resolve होने चाहिए |
key टारगेट के scheme का नाम है, प्रॉक्सी के scheme का नहीं। सिर्फ़ http वाली dictionary सादा HTTP प्रॉक्सी से भेजती है और हर HTTPS कॉल को सीधे बाहर जाने देती है, और आपको बताने के लिए कोई error नहीं आता।
socks5 में आपकी मशीन hostname resolve करती है और प्रॉक्सी को एक IP देती है। socks5h में प्रॉक्सी उसे resolve करती है, इसलिए lookup और उसका जवाब प्रॉक्सी के नेटवर्क से आते हैं, जो उन साइट के लिए मायने रखता है जो लोकेशन के हिसाब से जवाब देती हैं।
पासवर्ड में स्लैश, प्रश्नचिह्न या हैश URL को बीच में काट देता है, और requests प्रॉक्सी तक पहुँचने से पहले ही फ़ेल हो जाता है; प्रतिशत चिह्न को escape की तरह decode कर लिया जाता है। पासवर्ड को URL-encode करें, या IP व्हाइटलिस्ट ऑथेंटिकेशन इस्तेमाल करें और क्रेडेंशियल हटा दें।
requests HTTP_PROXY, HTTPS_PROXY और NO_PROXY पढ़ता है, जब तक कि आप session पर trust_env को False न कर दें, और ये variable Session.proxies को ओवरराइड करते हैं। सर्वर पर छूटा हुआ कोई पुराना variable session के ट्रैफ़िक को ऐसी जगह भेज सकता है जहाँ आप नहीं चाहते थे, या प्रॉक्सी को बायपास करा सकता है।
यूज़रनेम और पासवर्ड को प्रॉक्सी URL में डालें, http://USERNAME:PASSWORD@HOST:PORT, और इसे http और https दोनों key के लिए दें। requests क्रेडेंशियल प्रॉक्सी को भेजता है, और गलत होने पर प्रॉक्सी 407 लौटाती है। रिज़र्व्ड कैरेक्टर वाले पासवर्ड को encode करें, या उसकी जगह IP व्हाइटलिस्ट इस्तेमाल करें।
pip install requests[socks] से extra इंस्टॉल करें, अपने ऑर्डर पर प्रॉक्सी को ही SOCKS5 पर स्विच करें, और उसके बाद ऑर्डर जो port और क्रेडेंशियल दिखाए, उन्हें एक socks5h:// URL में इस्तेमाल करें। सिर्फ़ scheme बदलना काफ़ी नहीं है: HTTP पर सेट पता तब तक SOCKS5 का जवाब नहीं देता जब तक उसे स्विच न किया जाए। SOCKS5
हाँ। आपकी स्क्रिप्ट जिस पब्लिक IPv4 पते से चलती है, उसे एक API कॉल, PUT /orders/ORDER_ID/whitelist, से या MCP सर्वर के ज़रिए प्रॉक्सी की व्हाइटलिस्ट में जोड़ें; डैशबोर्ड में इसके लिए अभी कोई कंट्रोल नहीं है। इसके बाद प्रॉक्सी उस पते से आने वाले कनेक्शन बिना क्रेडेंशियल के, HTTP पर और SOCKS5 पर, स्वीकार करती है, और URL http://HOST:PORT हो जाता है। जब तक व्हाइटलिस्ट सेट है, प्रॉक्सी सिर्फ़ सूची में दिए पतों को आने देती है और उस ऑर्डर के लिए यूज़रनेम और पासवर्ड काम करना बंद कर देते हैं; खाली सूची भेजने से व्हाइटलिस्ट बंद हो जाती है और पासवर्ड से लॉगिन फिर काम करने लगता है।
नहीं। स्टैटिक ISP प्रॉक्सी उस अवधि के लिए एक पता है जिसके लिए आप भुगतान करते हैं, और इससे भेजी गई हर request उसी पते से निकलती है। अगर किसी जॉब को हर request पर अलग पता चाहिए, तो वह रोटेटिंग पूल है, जो हम अभी नहीं बेचते।
उसी प्रॉक्सी से ऐसे पेज पर request भेजें जो कॉल करने वाले का पता लौटाता हो, या उस प्रॉक्सी पर सेट ब्राउज़र से What Is My IP खोलें। अगर वह आपका अपना पता दिखाए, तो शायद https key छूट गई है। मेरा IP क्या है
अपनी साइट की क्षेत्र के हिसाब से टेस्टिंग, क्वालिटी चेक, विज्ञापन सत्यापन, कीमत और बाज़ार रिसर्च, और ब्रांड सुरक्षा के लिए हमारी स्वीकार्य उपयोग नीति के तहत किसी समीक्षा की ज़रूरत नहीं है। प्रॉक्सी CAPTCHA, बॉट डिटेक्शन, रेट लिमिट या अकाउंट बैन से पार नहीं पाती, और नीति ऐसी कोशिश के लिए इसके इस्तेमाल पर रोक लगाती है। स्वीकार्य उपयोग नीति