有没有一种方法可以使用可读性和python来提取文本,而不是HTML?

Mic*_*riv 6 python readability text-extraction html-content-extraction

我需要在服务器端在运行时从随机网页中提取纯文本。我使用Google App Engine和可读性python端口。有很多。

  1. gfxmonk的早期版本,基于BeautifulSoup
  2. minvolai基于gfxmonk的版本使用的是lxml而不是BeautifulSoap,尽管它引入了对lxml的依赖,但使其速度更快(根据minvolai,请参阅项目页面)。
  3. Yuri Baburov又名buriy的版本。与minvolai相同,取决​​于lxml。还取决于chardet 来检测编码。

我使用的是Yuri的最新版本,并且似乎正在积极开发中。我设法使它使用Python 2.7在Google App Engine上运行。现在的“问题”是它返回HTML,而我需要纯文本。

这篇Stackoverflow文章中有关链接提取的建议是使用BeatifulSoup。如果没有其他选择,我会的。BeatifulSoup将是另一个依赖项,因为我使用基于lxml的版本。

我的问题:

  • 有没有一种方法可以从我使用的Python Readability版本中获取纯文本而无需分叉代码?
  • 有没有一种方法可以轻松地从Python可读性的HTML结果中检索纯文本,例如使用lxml,BeatifulSoap,RegEx或其他方法
  • 如果对上述问题的回答为“是”或“是”但不容易,那么修改Python可读性的方法是什么。这样的修改是否(足以让足够多的人)足以使这种扩展正式化?

小智 5

您可以使用 html2text。这是一个很棒的工具。

这是有关如何将其与 python 可读性工具一起使用的链接 - 它们一起称为 read2text。

http://bretttterpstra.com/scripting-readability-markdownify-for-clipping-web-pages/

希望这可以帮助 :)


Mic*_*riv 4

不要让它徘徊,我目前的解决方案

  1. 我没有找到使用可读性端口的方法。
  2. 我决定使用 Beautiful Soup,版本 4
  3. BS 有一个简单的函数来提取文本

代码:

from bs4 import BeautifulSoup 
soup = BeautifulSoup(html) 
text =  soup.get_text() 
Run Code Online (Sandbox Code Playgroud)