Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 27, 2015 18:02:33

info
Зарегистрирован: 2015-02-28
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Выделение текста из html

Использую для этого метод text_content() из lxml, но в некоторых местах (<br>, <ul>) пара предложений слепляется в одно предложение и разделить их с помощь, например, nltk не представляется возможным(?). Вопрос – как можно получить текст в том виде, в котором он виден с html в плане, хотя бы, разделения по абзацам/предложениям?

Офлайн

#2 Июнь 27, 2015 20:21:15

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Выделение текста из html

>>> from lxml import html
>>> s = """
... <html>
... <body>
... la-la<br>newline
... </body>
... </html>
... """
>>> s = html.fromstring(s)
>>> for br in s.xpath("*//br"):
...     br.tail = "\n" + br.tail if br.tail else "\n"
... 
>>> print s.text_content().strip()
la-la
newline



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Июнь 27, 2015 20:54:24

info
Зарегистрирован: 2015-02-28
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Выделение текста из html

terabayt
Кроме br еще много чего есть, все теги, что ли, перечислять руками?

Офлайн

#4 Июнь 27, 2015 20:57:41

info
Зарегистрирован: 2015-02-28
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Выделение текста из html

Хотелось бы решения по-универсальнее, если такое есть.

Офлайн

#5 Июнь 27, 2015 22:08:59

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Выделение текста из html

info
Хотелось бы решения по-универсальнее, если такое есть.
не демаю что с с помощью lxml можно это сделать. он немного не для этого
вам нужно выводить форматированый текст
используйте html2text
>>> import html2text
>>> s = """
... <html>
... <body>
... la-la<br>newline<br/>hh
... </body>
... </html>
... """
>>> s = html2text.html2text(s)
>>> print s.strip()
la-la  
newline  
hh



————————————————
-*- Simple is better than complex -*-

Офлайн

#6 Июнь 29, 2015 11:58:47

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Выделение текста из html

https://github.com/codelucas/newspaper можно глянуть или подобные более продвинутые методы

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version