2011-02-16 15 views
14

:urllib2.URLError: यदि मैं चलाने <urlopen त्रुटि [errno 11004] getaddrinfo में विफल रहा है>

urllib2.urlopen('http://google.com') 

भले ही मैं एक और यूआरएल का उपयोग करें, मैं एक ही त्रुटि मिलती है।

मुझे यकीन है कि मेरे कंप्यूटर या राउटर पर कोई फ़ायरवॉल चल रहा है, और इंटरनेट (ब्राउज़र से) ठीक काम करता है।

उत्तर

1

आपको शायद प्रॉक्सी का उपयोग करने की आवश्यकता है। यह जानने के लिए अपनी सामान्य ब्राउज़र सेटिंग्स जांचें। समाधान के साथ एक ही समस्या के लिए opening websites using urllib2 from behind corporate firewall - 11004 getaddrinfo failed पर एक नज़र डालें।

+1

मैं कॉर्पोरेट फ़ायरवॉल के पीछे नहीं हूं, और मेरे ब्राउज़र में कोई प्रॉक्सी परिभाषित नहीं है। – quilby

+0

क्या आप 'टेलनेट www.mozillazine.org' आज़मा सकते हैं, फिर 'GET/http1.1' टाइप करें और एंटर दबाएं। क्या यह आपको उस साइट से कोई HTML आउटपुट दिखाता है? जादू मेजबान 'wpad' को पिंग करने का भी प्रयास करें जो autoproxy उपयोग करने का प्रयास करता है। पूर्ण यूआरएल autoproxy के लिए 'http: //wpad/wpad.dat' होना चाहिए .. – xeor

1

यह नेटवर्क-स्तरीय समस्या होने पर आपकी सहायता नहीं कर सकता है लेकिन आप प्रेजेंटप्लिब पर डीबगलेवल सेट करके कुछ डिबगिंग जानकारी प्राप्त कर सकते हैं। इस प्रयास करें:

import urllib, urllib2, httplib 

url = 'http://www.mozillazine.org/atom.xml' 
httplib.HTTPConnection.debuglevel = 1 

print "urllib" 

data = urllib.urlopen(url); 

print "urllib2" 

request = urllib2.Request(url) 
opener = urllib2.build_opener() 
feeddata = opener.open(request).read() 

कौन यहां से सीधे नकल की जाती है उम्मीद है कि कोषेर है: http://bytes.com/topic/python/answers/517894-getting-debug-urllib2

1

समस्या का निवारण करने के लिए:

  1. हमें क्या ओएस पर पता है है स्क्रिप्ट चलाने और कौन-सा संस्करण पाइथन
  2. उसी मशीन पर कमांड प्रॉम्प्ट में, ping google.com करें और देखें कि क्या यह काम करता है (या आप कहते हैं कि "होस्ट नहीं मिल सका")
  3. यदि (2) काम करता है, उस मशीन पर ब्राउज़र खोलें (आईई विंडोज़ पर) और "google.com" खोलने का प्रयास करें। यदि कोई समस्या है, तो इंटरनेट विकल्प/कनेक्शन/लैन सेटिंग्स

में प्रॉक्सी सेटिंग्स पर बारीकी से देखें, यह बताएं कि यह किसी भी तरह से कैसे जाता है।

4

साइट का DNS रिकॉर्ड ऐसा है कि पायथन एक अनोखे तरीके से DNS लुकअप को विफल करता है: यह प्रविष्टि पाता है, लेकिन शून्य संबंधित आईपी पते। (Nslookup के साथ सत्यापित करें।) इसलिए, 11004, WSANO_DATA

साइट 'www' के साथ उपसर्ग करें। और फिर से अनुरोध का प्रयास करें। (प्रयोग nslookup सत्यापित करने के लिए है कि इसके परिणाम अलग है, भी है।)

यह अनिवार्य रूप से विफल रहता है Python Requests module साथ उसी तरह:

requests.exceptions.ConnectionError: HTTPConnectionPool (मेजबान = '...', बंदरगाह = 80): अधिकतम यूआरएल के साथ पार कर पुनः:/(की वजह से: [errno 11004] getaddrinfo विफल)

4

समस्या, मेरे मामले में, यह है कि कुछ कुछ बिंदु एक वातावरण चर http_proxy परिभाषित मेरी मशीन जब पर पर स्थापित था मेरे पास कोई प्रॉक्सी नहीं थी।

को हटाकर http_proxy पर्यावरण परिवर्तक समस्या को हल करता है।

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