搜索引擎结果抽取通用算法

回顾了下之前开发的元搜索抽取模块,适用于所有搜索引擎和新加的微博检索,或者说类似结构的,因为业务比较专一吧,效果还是不错的,而且全自动的,大概总结下:-)


搜索引擎结果抽取通用算法_第1张图片

如上图大致是一个检索结果页面的DOM树结构,算法大致流程如下:

1.      找到所有锚文本链接

2.      进行分组(Rpath相同)

3.      求出每组的最小父块,找出字符数超过body子树字符总数一半的最小父块,这时可能有多个最小父块,找字符数最小的(即Rpath最长的),即html-...-div-...-div。这之后可能还有多个相同的最小父块,这时的最小父块就为数据区域块,如图阴影区域。需要记录下最小父块为数据区域块的链接组和其在链接组中的位置的对应关系

4.      对最小父块是数据区域块的链接组求出平均锚文本链接长度(文本链接比),最长的即为记录锚文本链接,比如绿色文本链接比大,绿色的就为记录锚文本链接

5.      求记录锚文本链接相对数据区域的最大父节点,即数据区域的第一层孩子节点,作为数据记录块

6.      找到数据记录块后,此处利用第一个和最后一个传统数据记录进行扩展,可以识别出其中的新型数据记录。(想用标签名、class属性识别新型数据记录,很难对所有搜索引擎都适用,从而做成通用的)

7.      数据记录块生成子树,抽取所需元信息

你可能感兴趣的:(xpath,wrapper,抽取,元搜索)