2012-11-30 16 views
6

Il titolo dice quasi tutto. Ecco il mio codice:ValueError: tipo di URL sconosciuto

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

ed ecco l'errore traceback ottengo:

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 

La mia ipotesi migliore è che urllib non può recuperare i dati da URL php disordinati. se questo è il caso, c'è un lavoro in giro? In caso contrario, cosa sto sbagliando?

+2

Aggiungi 'http: //' per l'url. – iMom0

risposta

8

Si dovrebbe prima provare ad aggiungere 'http://' davanti alla URL. Inoltre, fare non memorizzare i risultati in print, come è vincolante il riferimento a un altro oggetto (non callable).

Così questa linea dovrebbe essere:

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

Questo restituisce un file come oggetto. Per leggere il suo contenuto è necessario utilizzare diversi metodi di manipolazione dei file, in questo modo:

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

Grazie. Non solo hai risposto alla mia domanda, hai risposto alla mia prossima! ;) – Jamus

+0

Ho lo stesso errore e ho scaricato il sito Web con 'wget', come posso aprirlo? – hhh

3

È necessario passare un URL completo: vale a dire che deve iniziare con http://.

+0

Grazie, questo lo ha risolto :) – Jamus

2

Basta usare http://www.radioreference.com/apps/audio/?ctid=5586 e funzionerà correttamente.

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