Найти - Пользователи
Полная версия: TypeError: expected string or buffer
Начало » Python для новичков » TypeError: expected string or buffer
1
webstghost
Пытаюсь выдрать ссылки:

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 код.
fata1ex
html-код принято парсить html-парсерами. Например: lxml, beautifulsoup, htmlparser и тд.
webstghost
fata1ex
html-код принято парсить html-парсерами. Например: lxml, beautifulsoup, htmlparser и тд.
Да, знаю но к сожалению это не совсем мой случай. При том, что используемая для парсинга либа умеет работать совместно с beautifulsoup у меня не сложилось. Это была попытка использовать знакомый и понятный вариант, пусть и не красиво.
П.С. А в jabber конференции вы есть?
fata1ex
webstghost, ну правда будет удобнее :) И вам, и тем, кто на код будет смотреть потом.
В любом случае гугл никто не отменял, поэтому по этому запросу ‘find urls on page python’ на первой же странице огромное количество работающих примеров.

В конференции меня нету (
webstghost
Ну, необходимо использовать spynner. Там есть “set_html_parser”, можно указать используемую парсилку. А дальше начинаются пляски с бубном, т.к. примеров взаимодействия этого один с половиной на весь гугл И везде используется ‘pyquery’ который у меня говорит “AttributeError: ‘module’ object has no attribute ‘Pyquery’”.
py.user.next
приведи код страницы
что должно получиться после обработки
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB