Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 6, 2012 03:06:45

webstghost
Зарегистрирован: 2012-06-02
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

TypeError: expected string or buffer

Пытаюсь выдрать ссылки:

import re  
body = html
rex = re.compile(r'(\href=(\"|\'|\.\.)([^>]*?)(\"|\'|(class=))([^>]*?)>)', re.S)
urls = [c[2] for c in rex.findall(body)]
print urls

Получаю :

“TypeError: expected string or buffer”

В “body” html код.

Офлайн

#2 Июнь 6, 2012 03:14:11

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

TypeError: expected string or buffer

html-код принято парсить html-парсерами. Например: lxml, beautifulsoup, htmlparser и тд.



Офлайн

#3 Июнь 6, 2012 06:20:50

webstghost
Зарегистрирован: 2012-06-02
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

TypeError: expected string or buffer

fata1ex
html-код принято парсить html-парсерами. Например: lxml, beautifulsoup, htmlparser и тд.
Да, знаю но к сожалению это не совсем мой случай. При том, что используемая для парсинга либа умеет работать совместно с beautifulsoup у меня не сложилось. Это была попытка использовать знакомый и понятный вариант, пусть и не красиво.
П.С. А в jabber конференции вы есть?

Офлайн

#4 Июнь 6, 2012 12:14:03

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

TypeError: expected string or buffer

webstghost, ну правда будет удобнее :) И вам, и тем, кто на код будет смотреть потом.
В любом случае гугл никто не отменял, поэтому по этому запросу ‘find urls on page python’ на первой же странице огромное количество работающих примеров.

В конференции меня нету (



Офлайн

#5 Июнь 6, 2012 16:06:16

webstghost
Зарегистрирован: 2012-06-02
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

TypeError: expected string or buffer

Ну, необходимо использовать spynner. Там есть “set_html_parser”, можно указать используемую парсилку. А дальше начинаются пляски с бубном, т.к. примеров взаимодействия этого один с половиной на весь гугл И везде используется ‘pyquery’ который у меня говорит “AttributeError: ‘module’ object has no attribute ‘Pyquery’”.

Офлайн

#6 Июнь 7, 2012 02:25:56

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

TypeError: expected string or buffer

приведи код страницы
что должно получиться после обработки



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version