2012-11-30 17 views
6

Başlık hemen hemen her şeyi söylüyor.ValueError: bilinmeyen URL türü

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

ve buraya alıyorum traceback hatası var: İşte benim kod

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 

En iyi tahminle urllib düzensiz php URL'lerin veri almak değil olmasıdır. bu durumda, etrafta bir iş var mı? Eğer değilse, ne yapıyorum yanlış?

+2

URL'ye 'http: //' ekleyin. – iMom0

cevap

8

Önce url önünde 'http://' eklemek için çalışmalısınız. Ayrıca, numaralı , sonuçları print olarak olarak saklayın, referansı başka bir (geçici olmayan) nesneye bağlar.

Yani bu hat olmalıdır:

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

Bu nesne gibi bir dosya döndürür. İçindekileri okumak için, aşağıdaki gibi farklı dosya işleme yöntemlerini kullanmanız gerekir:

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

Teşekkür ederim. Sadece soruma cevap vermedin, bir sonraki cevap verdin! ;) – Jamus

+0

Aynı hatayı alıyorum ve web sitesini "wget" ile indirdim, bunu nasıl açabilirim? – hhh

3

Tam URL'yi iletmeniz gerekir: yani http:// ile başlamalıdır.

+0

Teşekkürler, bu çözüldü :) – Jamus

2

Yalnızca http://www.radioreference.com/apps/audio/?ctid=5586 kullanın ve iyi çalışır.

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>>