भाषा बदलें
हिन्दी English Русский Deutsch Español Français Italiano Українська Tiếng Việt Türkçe Bahasa Indonesia 日本語 中文
मेनू
कीमतें
प्रॉक्सी
प्रॉक्सी प्रकार
लोकेशन के अनुसार77 लोकेशन
समाधान
संसाधन

Python requests के साथ प्रॉक्सी कैसे इस्तेमाल करें

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 में।

यूज़रनेम और पासवर्ड के साथ Python requests प्रॉक्सी

ज़्यादातर प्रॉक्सी, हमारी भी, यूज़रनेम और पासवर्ड माँगती हैं। requests इन्हें प्रॉक्सी URL से पढ़ता है और हर कनेक्शन पर प्रॉक्सी को भेजता है। HTTPS टारगेट के लिए प्रॉक्सी एक टनल खोलती है और request की सामग्री कभी नहीं देखती। कोड टैब हर request वाला और session वाला रूप दिखाते हैं।

Python requests में प्रॉक्सी सेट करें

  1. अपने ऑर्डर से चार वैल्यू कॉपी करें

    Host, port, यूज़रनेम और पासवर्ड, डैशबोर्ड के मेरे प्रॉक्सी से या API में ऑर्डर से। हर पते की अपनी चार वैल्यू होती हैं; कोई साझा गेटवे नहीं है।

  2. एक प्रॉक्सी URL बनाएँ

    http://USERNAME:PASSWORD@HOST:PORT. अगर पासवर्ड में /, ?, # या % है, तो पहले उसे urllib.parse.quote(password, safe="") से URL-encode करें।

  3. दोनों scheme के लिए सेट करें

    http और https दोनों key को एक ही URL दें। सिर्फ़ http सेट होने पर हर HTTPS request प्रॉक्सी को छोड़ देती है और आपके अपने पते से निकलती है।

  4. बाहर जाने वाला पता एक बार जाँचें

    ऐसे पेज पर request भेजें जो कॉल करने वाले का IP दिखाता हो, या उसी प्रॉक्सी से What Is My IP खोलें, और पक्का करें कि यह वही पता है जो आपने खरीदा।

  5. जॉब को timeout के साथ चलाएँ

    हमेशा 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)

requests के लिए जाँचा हुआ कोड

हर सैंपल यूज़रनेम और पासवर्ड के साथ HTTP प्रॉक्सी से कनेक्ट होता है, सिवाय SOCKS5 वाले के, जिसके लिए पहले प्रॉक्सी को SOCKS5 पर स्विच करना पड़ता है; उसके बाद ऑर्डर इस्तेमाल के लिए नया port और नए क्रेडेंशियल दिखाता है। बड़े अक्षरों वाली चार वैल्यू की जगह अपने ऑर्डर की वैल्यू डालें।

पूरे API डॉक्स

requests में प्रॉक्सी कहाँ सेट हो सकती है

requests के डॉक्यूमेंटेशन से पढ़ा गया और इस पेज के कोड सैंपल से एक लोकल ऑथेंटिकेशन वाली प्रॉक्सी पर जाँचा गया। जब एक से ज़्यादा सेट हों, तो कॉल पर दिया proxies आर्ग्युमेंट environment पर भारी पड़ता है, और environment Session.proxies पर, जब तक कि session trust_env को False न कर दे, जैसा Session सैंपल करता है।
दायराक्रेडेंशियलकब इस्तेमाल करें
कॉल पर proxies=सिर्फ़ वही एक requestURL मेंकुछ ही कॉल वाली स्क्रिप्ट
Session.proxiessession की हर requestURL मेंइससे लंबा कुछ भी, trust_env को False करके
HTTP_PROXY और HTTPS_PROXYप्रोसेस की हर requests कॉलURL मेंऐसा कोड जिसे आप बदल नहीं सकते; NO_PROXY छोड़े जाने वाले host बताता है
socks5h:// URLजिस भी दायरे पर सेट होURL मेंजब hostname प्रॉक्सी पर resolve होने चाहिए

requests और प्रॉक्सी में क्या गलत होता है

सिर्फ़ http key सेट है

key टारगेट के scheme का नाम है, प्रॉक्सी के scheme का नहीं। सिर्फ़ http वाली dictionary सादा HTTP प्रॉक्सी से भेजती है और हर HTTPS कॉल को सीधे बाहर जाने देती है, और आपको बताने के लिए कोई error नहीं आता।

socks5h की जगह socks5

socks5 में आपकी मशीन hostname resolve करती है और प्रॉक्सी को एक IP देती है। socks5h में प्रॉक्सी उसे resolve करती है, इसलिए lookup और उसका जवाब प्रॉक्सी के नेटवर्क से आते हैं, जो उन साइट के लिए मायने रखता है जो लोकेशन के हिसाब से जवाब देती हैं।

ऐसा पासवर्ड जो URL तोड़ दे

पासवर्ड में स्लैश, प्रश्नचिह्न या हैश URL को बीच में काट देता है, और requests प्रॉक्सी तक पहुँचने से पहले ही फ़ेल हो जाता है; प्रतिशत चिह्न को escape की तरह decode कर लिया जाता है। पासवर्ड को URL-encode करें, या IP व्हाइटलिस्ट ऑथेंटिकेशन इस्तेमाल करें और क्रेडेंशियल हटा दें।

एक environment variable जो आप भूल गए

requests HTTP_PROXY, HTTPS_PROXY और NO_PROXY पढ़ता है, जब तक कि आप session पर trust_env को False न कर दें, और ये variable Session.proxies को ओवरराइड करते हैं। सर्वर पर छूटा हुआ कोई पुराना variable session के ट्रैफ़िक को ऐसी जगह भेज सकता है जहाँ आप नहीं चाहते थे, या प्रॉक्सी को बायपास करा सकता है।

requests किससे कनेक्ट होता है

प्रोटोकॉल
HTTP (जो HTTPS भी ले जाता है) या SOCKS5, ऑर्डर पर स्विच किया हुआ
ऑथेंटिकेशन
यूज़रनेम और पासवर्ड, या API के ज़रिए सेट की गई IP व्हाइटलिस्ट
पता
पूरी अवधि के लिए एक स्टैटिक IP, किसी नामित इंटरनेट प्रोवाइडर के नेटवर्क पर
रोटेशन
कोई नहीं: हर request पर वही पता

दूसरी गाइड, और प्रोडक्ट

Python requests में प्रॉक्सी के बारे में सवाल

Python requests में ऑथेंटिकेशन वाली प्रॉक्सी कैसे इस्तेमाल करें?

यूज़रनेम और पासवर्ड को प्रॉक्सी URL में डालें, http://USERNAME:PASSWORD@HOST:PORT, और इसे http और https दोनों key के लिए दें। requests क्रेडेंशियल प्रॉक्सी को भेजता है, और गलत होने पर प्रॉक्सी 407 लौटाती है। रिज़र्व्ड कैरेक्टर वाले पासवर्ड को encode करें, या उसकी जगह IP व्हाइटलिस्ट इस्तेमाल करें।

requests के साथ SOCKS5 प्रॉक्सी कैसे इस्तेमाल करें?

pip install requests[socks] से extra इंस्टॉल करें, अपने ऑर्डर पर प्रॉक्सी को ही SOCKS5 पर स्विच करें, और उसके बाद ऑर्डर जो port और क्रेडेंशियल दिखाए, उन्हें एक socks5h:// URL में इस्तेमाल करें। सिर्फ़ scheme बदलना काफ़ी नहीं है: HTTP पर सेट पता तब तक SOCKS5 का जवाब नहीं देता जब तक उसे स्विच न किया जाए। SOCKS5

क्या पासवर्ड की जगह IP व्हाइटलिस्ट ऑथेंटिकेशन इस्तेमाल कर सकते हैं?

हाँ। आपकी स्क्रिप्ट जिस पब्लिक IPv4 पते से चलती है, उसे एक API कॉल, PUT /orders/ORDER_ID/whitelist, से या MCP सर्वर के ज़रिए प्रॉक्सी की व्हाइटलिस्ट में जोड़ें; डैशबोर्ड में इसके लिए अभी कोई कंट्रोल नहीं है। इसके बाद प्रॉक्सी उस पते से आने वाले कनेक्शन बिना क्रेडेंशियल के, HTTP पर और SOCKS5 पर, स्वीकार करती है, और URL http://HOST:PORT हो जाता है। जब तक व्हाइटलिस्ट सेट है, प्रॉक्सी सिर्फ़ सूची में दिए पतों को आने देती है और उस ऑर्डर के लिए यूज़रनेम और पासवर्ड काम करना बंद कर देते हैं; खाली सूची भेजने से व्हाइटलिस्ट बंद हो जाती है और पासवर्ड से लॉगिन फिर काम करने लगता है।

क्या पता requests के बीच बदलता है?

नहीं। स्टैटिक ISP प्रॉक्सी उस अवधि के लिए एक पता है जिसके लिए आप भुगतान करते हैं, और इससे भेजी गई हर request उसी पते से निकलती है। अगर किसी जॉब को हर request पर अलग पता चाहिए, तो वह रोटेटिंग पूल है, जो हम अभी नहीं बेचते।

कैसे जाँचें कि साइट को कौन-सा IP दिखता है?

उसी प्रॉक्सी से ऐसे पेज पर request भेजें जो कॉल करने वाले का पता लौटाता हो, या उस प्रॉक्सी पर सेट ब्राउज़र से What Is My IP खोलें। अगर वह आपका अपना पता दिखाए, तो शायद https key छूट गई है। मेरा IP क्या है

मैं प्रॉक्सी किस काम के लिए इस्तेमाल कर सकता हूँ?

अपनी साइट की क्षेत्र के हिसाब से टेस्टिंग, क्वालिटी चेक, विज्ञापन सत्यापन, कीमत और बाज़ार रिसर्च, और ब्रांड सुरक्षा के लिए हमारी स्वीकार्य उपयोग नीति के तहत किसी समीक्षा की ज़रूरत नहीं है। प्रॉक्सी CAPTCHA, बॉट डिटेक्शन, रेट लिमिट या अकाउंट बैन से पार नहीं पाती, और नीति ऐसी कोशिश के लिए इसके इस्तेमाल पर रोक लगाती है। स्वीकार्य उपयोग नीति

स्टैटिक पता उन जॉब के लिए ठीक है जिन्हें हर बार एक ही जगह से पहुँचना चाहिए: कोई मॉनिटर, कोई क्षेत्रीय जाँच, कोई टेस्ट जो आज की तुलना पिछले हफ़्ते से करता है। ISP प्रॉक्सी पर हर जॉब के लिए एक पता ऑर्डर करें, कीमतें देखें, और अगर वही जॉब ब्राउज़र में चलता है, तो Selenium और Playwright गाइड वहाँ वही पता सेट करती हैं।

स्रोत

  • Requests documentation, Proxies: proxies आर्ग्युमेंट, environment variable और SOCKS सपोर्ट
  • RFC 1928, SOCKS Protocol Version 5: क्लाइंट SOCKS5 प्रॉक्सी से किसी डेस्टिनेशन को नाम से या पते से कैसे माँगता है
  • RFC 3986, URI Generic Syntax: URL का userinfo हिस्सा और वे कैरेक्टर जिन्हें उसमें encode करना ज़रूरी है