Форум сайта python.su
Использую для этого метод text_content() из lxml, но в некоторых местах (<br>, <ul>) пара предложений слепляется в одно предложение и разделить их с помощь, например, nltk не представляется возможным(?). Вопрос – как можно получить текст в том виде, в котором он виден с 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
Офлайн
terabaytКроме br еще много чего есть, все теги, что ли, перечислять руками?
Офлайн
Хотелось бы решения по-универсальнее, если такое есть.
Офлайн
infoне демаю что с с помощью lxml можно это сделать. он немного не для этого
Хотелось бы решения по-универсальнее, если такое есть.
>>> import html2text >>> s = """ ... <html> ... <body> ... la-la<br>newline<br/>hh ... </body> ... </html> ... """ >>> s = html2text.html2text(s) >>> print s.strip() la-la newline hh
Офлайн
https://github.com/codelucas/newspaper можно глянуть или подобные более продвинутые методы
Офлайн