HTTPX के साथ प्रॉक्सी का उपयोग कैसे करें पायथन में गुमनाम अनुरोधों के लिए
Expert in Web Scraping Technologies
Scrapeless Proxies के साथ अपने स्वचालन और स्क्रैपिंग को बढ़ावा दें - तेज, विश्वसनीय और सस्ती।
HTTPX एक आधुनिक, पूरी तरह से विशेषीकृत HTTP क्लाइंट है जो Python के लिए है, जो समकालिक और असमकालिक अनुरोधों का समर्थन करता है। जब आप वेब स्क्रैपिंग करते हैं या कई API कॉल करते हैं, तो प्रॉक्सी को एकीकृत करना गुमनामी बनाए रखने और अनुरोध की मात्रा को प्रबंधित करने के लिए एक महत्वपूर्ण कदम है। HTTPX प्रॉक्सी कॉन्फ़िगरेशन को सरल बनाता है, जो बुनियादी और प्रमाणित सेटअप दोनों का समर्थन करता है।
HTTPX में बुनियादी प्रॉक्सी कॉन्फ़िगरेशन
HTTPX आपको प्रॉक्सी को एक डिक्शनरी का उपयोग करके परिभाषित करने की अनुमति देता है जो प्रोटोकॉल (http:// या https://) को प्रॉक्सी URL से मानचित्रित करता है। प्रॉक्सी URL मानक प्रारूप का पालन करता है: <प्रोटोकॉल>://<IP_ADDRESS>:<PORT>।
python
import httpx
# अपने प्रॉक्सी सेटिंग्स परिभाषित करें
proxies = {
"http://": "http://216.137.184.253:80",
"https://": "http://216.137.184.253:80"
}
# निर्दिष्ट प्रॉक्सी के साथ अनुरोध करें
try:
r = httpx.get("https://httpbin.io/ip", proxies=proxies)
print(f"प्रतिक्रिया IP: {r.json().get('origin')}")
except httpx.ProxyError as e:
print(f"प्रॉक्सी कनेक्शन विफल: {e}")
वैकल्पिक रूप से, आप एक httpx.Client उदाहरण को आरंभ करते समय प्रॉक्सी कॉन्फ़िगर कर सकते हैं, जो एक ही लक्ष्य के लिए कई अनुरोध करने के लिए सिफारिश की जाने वाली विधि है, क्योंकि यह कनेक्शन का पुन: उपयोग करता है [4]।
python
import httpx
proxy_url = "http://216.137.184.253:80"
with httpx.Client(proxies=proxy_url) as client:
r = client.get("https://httpbin.io/ip")
print(f"प्रतिक्रिया IP: {r.json().get('origin')}")
प्रॉक्सी प्रमाणीकरण हैंडलिंग
उन प्रॉक्सियों के लिए जो उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होती है, HTTPX प्रॉक्सी URL में सीधा क्रेडेंशियल्स एम्बेड करने का समर्थन करता है। प्रारूप है http://<YOUR_USERNAME>:<YOUR_PASSWORD>@<IP_ADDRESS>:<PORT>।
python
import httpx
# एम्बेडेड क्रेडेंशियल्स के साथ प्रॉक्सी URL
proxy_url = "http://<YOUR_USERNAME>:<YOUR_PASSWORD>@proxy.scrapeless.com:1337"
with httpx.Client(proxies=proxy_url) as client:
r = client.get("https://httpbin.io/ip")
print(f"प्रतिक्रिया IP: {r.json().get('origin')}")
प्रॉक्सी रोटेशन लागू करना
पहचान से बचने और उच्च सफलता दर बनाए रखने के लिए, आपको अपनी प्रॉक्सी घुमानी चाहिए। इसमें प्रॉक्सी अंतर्देशीय की एक सूची बनाए रखना और प्रत्येक अनुरोध या सत्र के लिए एक यादृच्छिक रूप से एक चुनना शामिल है। यह एक मजबूत स्क्रैपिंग लाइब्रेरी के साथ मिलकर विशेष रूप से प्रभावी है।
python
import httpx
import random
# प्रॉक्सी URL की सूची (उदाहरण: आपके Scrapeless डैशबोर्ड से)
proxy_urls = [
"http://user:pass@proxy1.scrapeless.com:10000",
"http://user:pass@proxy2.scrapeless.com:10001",
"http://user:pass@proxy3.scrapeless.com:10002",
]
def make_proxied_request(url):
# अनुरोध के लिए एक यादृच्छिक प्रॉक्सी चुनें
random_proxy = random.choice(proxy_urls)
# क्लाइंट के लिए प्रॉक्सी कॉन्फ़िगर करें
proxies = {
"http://": random_proxy,
"https://": random_proxy
}
try:
with httpx.Client(proxies=proxies, timeout=10.0) as client:
response = client.get(url)
response.raise_for_status()
return response
except httpx.RequestError as e:
print(f"अनुरोध के दौरान एक गलती हुई {url} प्रॉक्सी {random_proxy} के माध्यम से: {e}")
return None
# उदाहरण उपयोग
response = make_proxied_request("https://targetwebsite.com/data")
if response:
print(f"सफलतापूर्वक डेटा स्क्रैप किया गया स्थिति कोड के साथ: {response.status_code}")
अनुशंसित प्रॉक्सी समाधान: Scrapeless Proxies
HTTPX के साथ उच्च मात्रा, असमकालिक स्क्रैपिंग के लिए, एक विश्वसनीय प्रॉक्सी अधिप्रणाली महत्वपूर्ण है। Scrapeless Proxies प्रदर्शन और स्टील्थ के लिए इंजीनियर किए गए हैं, जिनमें एक विविध IP पूल है जो अवरोधित होने के जोखिम को कम करता है। उनके आवासीय और स्थिर ISP प्रॉक्सी विशेष रूप से Python-आधारित स्क्रैपिंग के लिए प्रभावशाली हैं, जो जटिल लक्ष्यों तक पहुंचने के लिए उच्च विश्वास स्तर प्रदान करते हैं।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
प्रश्न: क्या HTTPX SOCKS प्रॉक्सी का समर्थन करता है?
उत्तर: हाँ, HTTPX SOCKS प्रॉक्सी का समर्थन करता है। आपको बस प्रॉक्सी URL में SOCKS प्रोटोकॉल निर्दिष्ट करने की आवश्यकता है, उदाहरण के लिए: socks5://user:pass@ip:port [5]।
प्रश्न: httpx.Client का उपयोग करने का लाभ क्या है साधारण httpx.get() के मुकाबले?
उत्तर: httpx.Client का उपयोग कनेक्शन पूलिंग और सत्र प्रबंधन की अनुमति देता है, जो कई अनुरोध करने के लिए अधिक कुशल होता है। यह आपको उस क्लाइंट सत्र के भीतर किए गए सभी अनुरोधों के लिए प्रॉक्सी जैसे डिफ़ॉल्ट पैरामीटर सेट करने की भी अनुमति देता है।
प्रश्न: मैं HTTPX में प्रॉक्सी त्रुटियों को कैसे संभालूं?
उत्तर: HTTPX नेटवर्क मुद्दों के लिए विशिष्ट अपवाद उठाता है। आपको अपने अनुरोधों को try...except ब्लॉक में लपेटना चाहिए और httpx.ProxyError या अधिक सामान्य httpx.RequestError को पकड़ना चाहिए ताकि पुनः प्रयास तर्क लागू किया जा सके या एक अलग प्रॉक्सी पर स्विच किया जा सके।
स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।



