Найти - Пользователи
Полная версия: Выделение текста из html
Начало » Data Mining » Выделение текста из html
1
info
Использую для этого метод text_content() из lxml, но в некоторых местах (<br>, <ul>) пара предложений слепляется в одно предложение и разделить их с помощь, например, nltk не представляется возможным(?). Вопрос – как можно получить текст в том виде, в котором он виден с html в плане, хотя бы, разделения по абзацам/предложениям?
terabayt
>>> 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
info
terabayt
Кроме br еще много чего есть, все теги, что ли, перечислять руками?
info
Хотелось бы решения по-универсальнее, если такое есть.
terabayt
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
slav0nic
https://github.com/codelucas/newspaper можно глянуть или подобные более продвинутые методы
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