如何从HTML中提取有意义的文本

时间:2010-10-19 14:30:59

标签: html c ruby html-parsing html-content-extraction

我想解析一个html页面并从中提取有意义的文本。有人知道一些好的算法吗?

我在Rails上开发我的应用程序,但我认为ruby在这方面有点慢,所以我认为如果在c中存在一些好的库,那将是合适的。

谢谢!

PD:请不要用java推荐任何东西

更新: 我找到了这个link text

可悲的是,在python中

4 个答案:

答案 0 :(得分:6)

使用快速编写的Nokogiri用于Ruby。

(使用regexp来解析像HTML这样的递归表达式notoriously difficult and error prone,我不会走那条路。我只在答案中提到这一点,因为这个问题似乎一再出现。)

使用像上面提到的Nokogiri这样的真正解析器,您还可以获得保留HTML文档的结构和逻辑的额外好处,有时您确实需要这些线索。

答案 1 :(得分:2)

与Ruby集成的解决方案

外部解决方案

答案 2 :(得分:-1)

Lynx能够做到这一点。如果你想看一下,这是开源的。

答案 3 :(得分:-3)

您应该从文本中剥离所有角度括号的部分,然后折叠白色空格。 理论上,<>在其他情况下不应该存在。页面包含&lt;&gt;,而不是它们。

折叠空格:将所有TAB,换行符等转换为空格,然后将每个空格序列替换为单个空格。

更新:您应该在找到<body>代码后开始。