以编程方式检测页面上的"最重要内容"

Sam*_*son 8 language-agnostic design-patterns screen-scraping

是否有任何工作可以自动确定html文档中最重要的数据?例如,想想您的标准新闻/博客/杂志式网站,其中包含导航(可能包含子菜单),广告,评论和奖品 - 我们的文章/博客/新闻机构.

您如何确定新闻/博客/杂志上的哪些信息是自动化的主要数据?

注意:理想情况下,该方法可以使用格式良好的标记和可怕的标记.是否有人使用段落标记来制作段落或一系列中断.

non*_*one 11

想想您的标准新闻/博客/杂志式网站,包含导航(可能包含子菜单),广告,评论和奖品 - 我们的文章/博客/新闻机构.

您如何确定新闻/博客/杂志上的哪些信息是自动化的主要数据?

我可能会尝试这样的事情:

  • 打开网址
  • 从该页面读取同一网站的所有链接
  • 按照所有链接为每个URL构建一个DOM树(HTML文件)
  • 这应该可以帮助你提出冗余内容(包括模板等)
  • 比较同一站点上所有文档的DOM树(树行走)
  • 剥离所有冗余节点(即重复,导航标记,广告等)
  • 尝试识别类似的节点并尽可能剥离
  • 找到该网站上其他DOM中找不到的最大的唯一文本块(即唯一内容)
  • 添加作为进一步处理的候选者

这样做的方法看起来非常有前景,因为它做起来相当简单,但仍具有很好的自适应潜力,即使对于过度使用模板的复杂Web 2.0页面也是如此,因为它会在所有页面之间识别出类似的HTML节点在同一个网站上.

通过使用评分系统来跟踪先前被识别为包含唯一内容的DOM节点,可以进一步改善这一点,以便这些节点优先于其他页面.


Col*_*ard 11

可读性确实很好.

它是开源的并发布在Google Code上.


更新:我看到(通过HN)有人使用可读性将RSS源自动化为更有用的格式.


Ian*_*obs 10

有时会将CSS Media部分定义为"Print".它的用途是"点击此处打印此页面"链接.通常人们用它来剥去大量的绒毛,只留下信息的肉.

http://www.w3.org/TR/CSS2/media.html

我会尝试阅读这种风格,然后刮掉任何可见的东西.