Найти - Пользователи
Полная версия: BeautifulSoup и текст в хтмле отформатированный.
Начало » Python для новичков » BeautifulSoup и текст в хтмле отформатированный.
1
diam123
Здравствуйте, уважаемое коммьюнити.
Прошу вашей помощи в таком вопросике.
Имеется файлик в хтмл, в нем находится кусок отформатированного текста.
Необходимо выдрать из него текстовые данные.
Но вот беда - 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.
Но вот с переносами строк то выходит месиво…
Подскажите как это можно правильно и элегантно реализовать.
regall
diam123
хотя должно бы
нет, как должно быть почитайте в документации. Кроме того, обработку каждого тега вы можете переопределить сами, наследуясь от соответствующего класса.
diam123
regall
Смотрел исходники только, по докам не рылся. В них не нашел.
Спасибо, пороюсь.
bw
Или используй html5lib, лучше валидирует, но работает медленней.

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

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