Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 22, 2010 16:14:35

dezz
От:
Зарегистрирован: 2009-09-20
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в использовании Re

Имеется html код:

<li><a href="http://url/">анкор</a></li>
Нужно как бы анкор спарсить) Всегда получалось, но тут ума дать не могу, ошибки так и сыпятся :(
Ошибка в этой строке:
re_url = re.findall('\<li\>\<a href\=\".*\">(.*)\<\/a\>\<\/li\>', page_map)
Сама ошибка:
Traceback (most recent call last):
File "C:\Python26\ololo.py", line 9, in <module>
re_url = re.findall('\<li\>\<a href\=\".*\">(.*)\<\/a\>\<\/li\>', page_map)
File "C:\Python26\lib\re.py", line 177, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer



Офлайн

#2 Фев. 22, 2010 16:34:03

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Ошибка в использовании Re

В page_map находится что-то не то, чего ожидает функция.

Офлайн

#3 Фев. 22, 2010 18:53:25

dezz
От:
Зарегистрирован: 2009-09-20
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в использовании Re

Проблема решена, моя глупая ошибка)

page_map это список, добавив цикл for всё решилось!



Офлайн

#4 Фев. 22, 2010 22:44:45

bazooka
От:
Зарегистрирован: 2009-04-12
Сообщения: 165
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в использовании Re

список чево если не секрет, покажи for. такое чувство что туда просится join



Офлайн

#5 Фев. 22, 2010 22:52:05

dezz
От:
Зарегистрирован: 2009-09-20
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка в использовании Re

Да на самом деле я затупил немного в другом месте и цикл for даже не требуется) Это я уже потом понял ;)

был код:

page_map = urllib2.urlopen(url).readlines()
re_url = re.findall('\<li\>\<a href\=\".*\">(.*)\<\/a\>\<\/li\>', page_map)
нужно было всего-лишь изменить на:
page_map = urllib2.urlopen(url).read()
re_url = re.findall('\<li\>\<a href\=\".*\">(.*)\<\/a\>\<\/li\>', page_map)
Глупая ошибка, по неопытности!

из-за .readlines() создавался список) и я решил использовать цикл for, потом увидел где я допустил ошибку)



Отредактировано (Фев. 22, 2010 22:57:15)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version