2012-11-30 35 views
6

शीर्षक यह सब कुछ कहता है। यहाँ मेरी कोड है:वैल्यूएरर: अज्ञात यूआरएल प्रकार

from urllib2 import urlopen as getpage 
print = getpage("www.radioreference.com/apps/audio/?ctid=5586") 

और यहाँ ट्रेसबैक त्रुटि मैं प्राप्त होते हैं:

Traceback (most recent call last): 
    File "C:/Users/**/Dropbox/Dev/ComServ/citetest.py", line 2, in <module> 
    contents = getpage("www.radioreference.com/apps/audio/?ctid=5586") 
    File "C:\Python25\lib\urllib2.py", line 121, in urlopen 
    return _opener.open(url, data) 
    File "C:\Python25\lib\urllib2.py", line 366, in open 
    protocol = req.get_type() 
    File "C:\Python25\lib\urllib2.py", line 241, in get_type 
    raise ValueError, "unknown url type: %s" % self.__original 
ValueError: unknown url type: www.radioreference.com/apps/audio/?ctid=5586 

मेरे सर्वोत्तम अनुमान है कि urllib गन्दा php URL से डेटा प्राप्त नहीं कर सकते हैं। यदि यह मामला है, तो क्या कोई काम है? यदि नहीं, तो मैं क्या गलत कर रहा हूँ?

+2

यूआरएल में 'http: //' जोड़ें। – iMom0

उत्तर

8

आप पहले यूआरएल के सामने 'http://' जोड़ने के लिए प्रयास करना चाहिए। इसके अलावा, print में के रूप में परिणाम संग्रहीत करें, यह किसी अन्य (गैर कॉल करने योग्य) ऑब्जेक्ट के संदर्भ को बाध्यकारी है।

तो इस लाइन किया जाना चाहिए:

page_contents = getpage("http://www.radioreference.com/apps/audio/?ctid=5586") 

इस वस्तु की तरह एक फ़ाइल देता है। इसकी सामग्री को पढ़ने के लिए आपको विभिन्न फ़ाइल मैनिपुलेशन विधियों का उपयोग करने की आवश्यकता है, जैसे:

for line in page_contents.readlines(): 
    print line 
+0

धन्यवाद। आपने न केवल मेरे प्रश्न का उत्तर दिया, आपने मेरा जवाब दिया! ;) – Jamus

+0

मुझे एक ही त्रुटि है और मैंने वेबसाइट को 'wget' के साथ डाउनलोड किया है, मैं इसे कैसे खोल सकता हूं? – hhh

3

आपको एक पूर्ण यूआरएल पास करने की आवश्यकता है: यानी इसे http:// से शुरू होना चाहिए।

+0

धन्यवाद, यह हल हो गया :) – Jamus

2

बस http://www.radioreference.com/apps/audio/?ctid=5586 का उपयोग करें और यह ठीक काम करेगा।

In [24]: from urllib2 import urlopen as getpage 

In [26]: print getpage("http://www.radioreference.com/apps/audio/?ctid=5586") 
<addinfourl at 173987116 whose fp = <socket._fileobject object at 0xa5eb6ac>>