我有一个爬虫收集文章从网络和存储标题和身体数据库。到目前为止,程序员必须为每个源(通常是XPath,有时是正则表达式)提供一组规则,以指向网页的文章标题和正文部分。现在,我试图向前迈进一步,让程序自动检测标题和正文的文章。我的第一种方法是根据一些共同的标准为每个元素添加权重。例如:
//@x-weight = 1.0
//h1/@x-weight * 2.0
//h2/@x-weight * 1.8有更多的规则,但你明白重点。在根据标记分配权重之后,我会考虑到其他一些方面,比如与/head/title的相似性和关键字的数量。这种方法虽然对大多数网页产生了不错的效果(感谢SEO专家:P),但对其他网页来说却是灾难性的失败。我正在考虑使用人工神经网络的可能性,但是我找不到足够的证据来证明我会得到更好的结果。另一种选择是将CSS带入游戏中,并根据字体大小调整权重。
问题:
PS:我知道这样的问题没有一个完美的解决方案。
发布于 2011-02-19 16:03:23
我的建议是看CSS,而不是h1、h2、h3,因为它们在大多数网站中并没有真正使用。大字体可能意味着标题,比给定的标签和关键字更清晰。
同样,文本段落较小的字体也很可能是正文。
我不认为这是一个很好的方法,除非你表现得像在用网页浏览器查看页面,而不是仅仅看源代码(因为这就是人们阅读的目的。)然而,使用网页图片然后利用图像处理来提取内容的可行性是完全不现实的)。
希望这能帮到你。
发布于 2011-02-19 17:42:43
很难想出适用于多个站点的权重/规则--在标准css的一致性或使用方面存在一些非常糟糕的站点。最后,我认为最好的组合是:
使用这些标准的加权组合生成一个分数。作为配置部分,每个站点的权重可能不同。
https://stackoverflow.com/questions/5051688
复制相似问题