2011-01-31 17 views
5

में विफल रहा है मैं नीचे का उपयोग कर कॉर्पोरेट फ़ायरवॉल के पीछे से एक वेबसाइट का उपयोग करने कोशिश कर रहा हूँ: - हो रही त्रुटिउद्घाटन वेबसाइटों कॉर्पोरेट फ़ायरवॉल के पीछे से urllib2 का उपयोग कर - 11004 getaddrinfo

URLError: <urlopen error [Errno 11004] getaddrinfo failed> 

मैं के साथ की कोशिश की है

password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() 
password_mgr.add_password(None, url, username, password) 
auth_handler = urllib2.HTTPBasicAuthHandler(password_mgr) 
opener = urllib2.build_opener(auth_handler) 
urllib2.install_opener(opener) 
conn = urllib2.urlopen('http://python.org') 

विभिन्न हैंडलर (प्रॉक्सीहैंडलर को थोड़ा अलग तरीके से भी कोशिश की), लेकिन काम नहीं लग रहा है।

किसी भी संकेत के लिए त्रुटि और कारणों की आपूर्ति करने और इसे काम करने के किसी भी तरीके से क्या संकेत हो सकता है?

+0

प्रॉक्सी प्रमाणन किस तरह चाहता है? यदि यह 'प्रॉक्सी-प्रमाणीकरण: एनटीएलएम' की मांग करता है तो इसे पायथन के साथ काम करना असंभव है, मुझे खेद है। –

उत्तर

5

यदि आप प्रॉक्सी का उपयोग कर रहे हैं और उस प्रॉक्सी में उपयोगकर्ता नाम और पासवर्ड है (जो कई कॉर्पोरेट प्रॉक्सी है), तो आपको प्रॉक्सी हैंडलर urllib2 के साथ सेट करने की आवश्यकता है।

proxy_url = 'http://' + proxy_user + ':' + proxy_password + '@' + proxy_ip 
    proxy_support = urllib2.ProxyHandler({"http":proxy_url}) 
    opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler) 
    urllib2.install_opener(opener) 

HTTPBasicAuthHandler साइट है जो आप तक पहुँचने के लिए और प्रॉक्सी के माध्यम से जाने के लिए जा रहे हैं नहीं के लिए क्रेडेंशियल प्रदान किया जाता है। उपरोक्त स्निपेट आपकी मदद कर सकता है।

+0

मैंने पहले ही यह कोशिश की थी, लेकिन उसने एचटीपी 401 को त्रुटि के रूप में अनधिकृत दिया। मुझे संदेह है कि मेरा कॉर्पोरेट प्रॉक्सी एनटीएलएम है और उपर्युक्त विधियां पर्याप्त नहीं हो सकती हैं। –

+0

कृपया http://code.google.com/p/python-ntlm/ के साथ प्रयास करें इस लिंक में सुझाव के साथ भी प्रयास करें, http://stackoverflow.com/questions/1481398/python-urllib2-https-and-proxy -ntlm-प्रमाणीकरण/1793206 # 1793206 यदि ये दोनों कार्य और सादे urllib2 नहीं हैं, तो कृपया पहले से मौजूद नहीं होने पर bugs.python.org के साथ एक रिपोर्ट दर्ज करें। मान लीजिए, इसे काम करने की जरूरत है। –

+0

पायथन-एनटीएलएम मदद नहीं की - एक ही getaddinfo त्रुटि दी। Pycurl कोशिश करेंगे। पॉइंटर्स के लिए बहुत बहुत धन्यवाद। –

4

विंडोज़ पर, मैंने देखा कि पायथन IE Internet Options-> LAN Settings सेटिंग्स का उपयोग करता है। तो अगर हम सलामी बल्लेबाज स्थापित करने के लिए urllib2 का उपयोग करते हैं और proxy_url निर्दिष्ट करते हैं, तो यह आईई सेटिंग्स का उपयोग जारी रखेगा।

यह अंततः ठीक काम किया, जब मैं एक प्रणाली चर निर्यात:

http_proxy=http://userid:[email protected]:port 
+1

मुझे गूंगा बुलाओ लेकिन निर्यात किया गया, और कैसे? क्या आपने इसे कमांड लाइन पर चलाया था? यदि हां, तो मैं 'सेट' का उपयोग कर मानता हूं? – jamiet

संबंधित मुद्दे