查找许多HTML文档之间的文本块之间的相似之处?

时间:2010-06-23 17:37:18

标签: ruby diff

如果我说20个HTML页面并且我想要提取文档的共享/类似部分,那么有哪些有效的方法可以做到这一点?

所以对于StackOverflow来说,比较10个页面,我发现每个页面的顶栏和主菜单栏是相同的,所以我可以将它们解压缩出来。

似乎我需要一个diff程序或一些复杂的regexp,但假设我事先不知道page / text / html结构。

这可能吗?

2 个答案:

答案 0 :(得分:1)

你应该考虑一个clone detector such as CloneDR。好的,无论格式如何,都可以同时比较数千个文件的结构,并会告诉您文件的共同元素以及这些常见元素的变化情况。

CloneDR已应用于许多编程语言。它的基础,DMS Software Reengeering Toolkit,已经处理(脏)HTML,因此构建HMTL CloneDR非常容易。

答案 1 :(得分:0)

您不需要任何复杂的regexp;只需一个简单的差分分析仪即可。只需进行(可枚举)注射,只保留与备忘录类似的部分。

以下是Ruby中的一些内容:

  • ruby-diff - 从Perl
  • 实现text-diff算法
  • diff-lcs
  • HTMLdiff - 查找两个字符串的差异,并使用漂亮的格式(HTML)渲染(可能不完全是您想要的,除非您可以从输出中去除所有非差异材质)

希望这有帮助!