Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 27, 2010 17:15:07

diam123
От:
Зарегистрирован: 2008-10-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

BeautifulSoup и текст в хтмле отформатированный.

Здравствуйте, уважаемое коммьюнити.
Прошу вашей помощи в таком вопросике.
Имеется файлик в хтмл, в нем находится кусок отформатированного текста.
Необходимо выдрать из него текстовые данные.
Но вот беда - BeautifulSoup при выдирании не реагирует на <br> тэг.
В результате из
“Привет</br>Вася”
Получается “ПриветВася” хотя должно бы
“Привет
Вася”

paga = open("page.html").read().decode("UTF-8")
soup = BeautifulSoup.BeautifulSoup(paga)
for data in soup.findAll("div", "text_content"):
print data.getText()
Если бы трабл был только со словами то там есть параметр separator.
Но вот с переносами строк то выходит месиво…
Подскажите как это можно правильно и элегантно реализовать.



Отредактировано (Янв. 27, 2010 17:16:41)

Офлайн

#2 Янв. 27, 2010 17:32:08

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

BeautifulSoup и текст в хтмле отформатированный.

diam123
хотя должно бы
нет, как должно быть почитайте в документации. Кроме того, обработку каждого тега вы можете переопределить сами, наследуясь от соответствующего класса.



Офлайн

#3 Янв. 27, 2010 17:36:45

diam123
От:
Зарегистрирован: 2008-10-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

BeautifulSoup и текст в хтмле отформатированный.

regall
Смотрел исходники только, по докам не рылся. В них не нашел.
Спасибо, пороюсь.



Офлайн

#4 Янв. 28, 2010 07:18:29

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

BeautifulSoup и текст в хтмле отформатированный.

Или используй html5lib, лучше валидирует, но работает медленней.

..bw



Офлайн

#5 Янв. 28, 2010 10:29:38

diam123
От:
Зарегистрирован: 2008-10-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

BeautifulSoup и текст в хтмле отформатированный.

bw
Или используй html5lib, лучше валидирует, но работает медленней.
А что посоветуете для использования в будущем - html5lib или все-таки BeautifulSoup ?
Просто вижу что автор супа не в восторге от того что ему приходится сопровождать и апгрейдить код, и сам об этом пишет. Сопровождает исключительно из чувства долга, следовательно спокойно может забить.
Имеет ли смысл использовать суп в перспективе ? Или лучше сразу перескочить на html5lib, и использовать его.
Вопрос стоит так потому что я планирую в будущем работать с парсерами html и задумываюсь - имеет ли смысл изучать то, на что могут забить, или лучше юзать то что “дольше проживёт”. Вопрос производительности не стоит (пока что) так как файлы не очень большие, да и думаю что если html5lib начнут активно использовать, то этот момент будут улучшать.



Офлайн

#6 Янв. 28, 2010 13:54:14

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

BeautifulSoup и текст в хтмле отформатированный.

Я остановил свой выбор на html5lib прежде всего из-за его точного валидатора. Например, со структурой HTML я разбираюсь в Firefox (реже в Opera), после этого пишу код, в 99.9% случаев он работает в html5lib, а вот BeautifulSoup восстанавливает другой XHTML, отличный от “образцовых” браузеров, приходилось возиться, да еще и от версии супа зависит, какой XHTML на выходе будет. Для обхода документа DOM, полученного после парсинга html5lib использую XPath, требуется время для привыкания, но потом тебя от него за уши не оттащишь :-). Не думаю что html5lib суждено загнуться, проект весьма амбициозный.

..bw



Офлайн

#7 Янв. 28, 2010 13:59:29

diam123
От:
Зарегистрирован: 2008-10-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

BeautifulSoup и текст в хтмле отформатированный.

Понял, тогда сейчас попробую перескочить на html5lib. :)
UPD. Короче, забил на парсеры хтмл - не могу вьехать в DOM толком :(.
Распарсил всё регулярками да и всё, ато с этими парсерами второй день вожусь, а сделать ничего не могу :(



Отредактировано (Янв. 28, 2010 17:04:33)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version