说明:《基于行块分布函数的通用网页正文抽取》是哈尔滨工业大学信息检索研究中心陈 鑫 (Xin Chen) 的研究成果,详细看这里:http://code.google.com/p/cx-extractor/ ,完整算法及C#实现从这里下载:https://files.cnblogs.com/ideas/TextExtractor.rar

  看了这个算法之后,对网页内容的抓取,很有启发。如果要实现抓规则的通用性,就得找出网页大众化的设计规律。比如新闻,首先仿照该算法去除所有html标签,然后提取body内的文本。一般情况下,标题都会占用单独的一行,所以就可以使用“行文本”与title对比,如果该行内容与title开头一样,则可以认为是网页标题开发。而新闻的发布时间的位置大部分是放在标题与正文之间,所以这样就可以从标题往后解析,如果“行文本”包含有时间格式的文本,即可认定是发布时间。新闻其它字段提取方法类似。

如何判断一个URL是否是新闻最终页?可以使用机器学习的方法,使用上面方法提取新闻正文,如果成功,则解析该URL转换为正则,然后拿该正则去匹配其它的URL,如果成功数超过一定的阀值,则认为是新闻最终页。

如何判断一个URL是否是新闻列表页?根据新闻最终页引用地址判断,如果最终页来源于某个网页的数量超过一个阀值,则认为该页是新闻列表页。

 

另外今天发现.net使用正则\w匹配的结果竟然把中文字符也给算进去了。不知何解。

posted on 2011-03-28 17:12  ideas  阅读(1619)  评论(1编辑  收藏  举报