Python Requests मध्ये प्रॉक्सी IP वापरणे
Requests मध्ये प्रत्येक विनंतीसाठी स्पष्ट प्रॉक्सी मार्ग द्या, योग्य एंडपॉइंट स्कीम निवडा आणि टाइमआउट व HTTPS बोगद्याच्या त्रुटी हाताळा.
प्रकल्पात Requests उपलब्ध असेल तर कॉलला प्रॉक्सी मॅपिंग द्या:
import requests
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
response = requests.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
print(response.status_code)
लूपबॅक एंडपॉइंटच्या जागी तुमची चालू प्रॉक्सी किंवा या विनंतीने तपासायचा HTTP प्रॉक्सी यादीतील पर्याय द्या. कळा गंतव्याच्या स्कीम सांगतात: HTTP URL साठी http आणि HTTPS URL साठी https. मूल्ये प्रॉक्सी लिसनर सांगतात. नेटवर्कला स्वतंत्र मार्ग आवश्यक असतील तर एंडपॉइंट वेगवेगळे असू शकतात.
http:// प्रॉक्सी मूल्य https कळीखाली ठेवणे जाणीवपूर्वक आहे. Requests HTTP लिसनरकडे CONNECT बोगदा मागते आणि त्यातून गंतव्याशी TLS स्थापित करते, प्रॉक्सीच्या गंतव्य व पोर्ट धोरणाच्या अधीन राहून. मूल्य https:// केल्यास खुद्द प्रॉक्सीशी TLS मागितले जाते; लिसनर कूटबद्ध नसलेले HTTP अपेक्षित करत असेल तर ते अयशस्वी होऊ शकते.
टाइमआउटचे दोन आकडे काय सांगतात
timeout=(5, 15) कनेक्शन आणि वाचनाचे टाइमआउट ठरवते. ते एकूण पंधरा सेकंदांची अंतिम मुदत लावत नाही. वेळोवेळी येणारा डेटा, अनेक पत्ते आणि जोडणीचे प्रयत्न यांमुळे प्रत्यक्ष वेळ वाढू शकतो. ही सेटिंग वगळल्यास Requests सामान्य टाइमआउट देत नाही. प्रतिसादाला योग्य मर्यादा निवडा आणि कामाला काटेकोर एकूण वेळबजेट हवे असल्यास अनुप्रयोग पातळीवर अंतिम मुदत जोडा.
अयशस्वीपणा ज्या टप्प्यावर येतो तिथे हाताळा
try:
response = requests.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
except requests.exceptions.ProxyError as error:
print("Proxy setup failed:", type(error).__name__)
except requests.exceptions.Timeout:
print("A configured timeout expired")
except requests.exceptions.HTTPError as error:
print("HTTP status:", error.response.status_code)
CONNECT नाकारल्यास गंतव्याचा प्रतिसाद येण्यापूर्वीच ProxyError येऊ शकते. HTTPError शाखा त्रुटी स्थितीचा प्रतिसाद मिळाल्यानंतर येते; Timeout म्हणजे ठरवलेली मर्यादा संपली. जोडणी करतानाच्या अपवाद-साखळ्या स्थानिकरीत्या तपासा आणि शेअर करण्यापूर्वी प्रवेशमाहिती असलेले एंडपॉइंट व खासगी URL काढा.
प्रमाणपत्र पडताळणी चालू ठेवा. अधिकृत नेटवर्क खासगी CA किंवा व्यवस्थापित इंटरसेप्शन वापरत असेल तर पडताळणी बंद करण्याऐवजी अपेक्षित विश्वास सामग्री पुरवा.
प्रत्येक विनंतीचे स्पष्ट घटक येथे दिलेले मार्ग नियंत्रित करतात, पण वगळलेल्या स्कीमवर वातावरणातून होणाऱ्या प्रॉक्सी शोधाचा परिणाम अजून होऊ शकतो. कॉल पुनर्वापर करता येणाऱ्या Session मध्ये नेताना ठरवा की वातावरणातील चल, Session चे मूळ पर्याय आणि विनंतीनिहाय ओव्हरराइड कसे काम करतील; कनेक्शनचा पुनर्वापर आणि मार्ग धोरण या स्वतंत्र निवडी आहेत.