2013-09-09 4 views
0

Вот часть моего кода:ValueError: неизвестный тип url: h; в urllib2?

import urllib2 
def find_all(list1): 
    for link1 in list1: 
     p1 = urllib2.urlopen(link1) 
     s1 = p1.read() 
     s2 = s1.find('"ratingValue"') 
     start_char = s1.find('>', s2) 
     ....... 

m = 'http://www.tervisetrend.ee/hambaarst-Aleksei-Ratsep-MD18661.aspx' 
lm = list(m) 
find_all(lm) 

Когда я запустить его, я следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "/home/mike/Downloads/link_code.py", line 70, in <module> 
    find_all(lm) 
    File "/home/mike/Downloads/link_code.py", line 40, in find_all 
    p1 = urllib2.urlopen(link1) 
    File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 396, in open 
    protocol = req.get_type() 
    File "/usr/lib/python2.7/urllib2.py", line 258, in get_type 
    raise ValueError, "unknown url type: %s" % self.__original 
ValueError: unknown url type: h 

Почему у меня возникают эту ошибку и как я могу исправить это?

Примечание: я запускал это много раз, и до этого он не дал мне ошибку.

Спасибо.

ответ

3

Если вы делаете оттиск lm:

lm = list(m) 
print(lm) 
>>> ['h', 't', 't', 'p', ':', etc...] 

вы обнаружите, что вы создали список символов.

правильный путь:

lm = [m]