aihot  2020-11-12 11:21:28  OpenCV |   查看评论   

  网页排序重要的两个参考因素分别是内容相似性网页重要性,搜索引擎需要选择与用户查询密切相关的,质量较好或者相对重要的网页。

  除了上述的子功能,搜索引擎的反作弊模块也是必不可少的,以避免网页通过各种手段将网页的搜索排名提高到与其网页质量不相称的位置。

网络爬虫

通用爬虫框架

  爬虫首先从互联网页面中精心选择一部分网页,以这些网页的链接地址作为种子URL,将这些种子URL放入待抓取URL队列中,爬虫从待抓取URL队列依次读取,并将URL通过DNS解析,把链接地址转换为网站服务器对应的IP地址。然后将其和网页相对路径名称交给网页下载器,网页下载器负责页面内容的下载。

  对于下载到的网页,首先将网页内容存储到页面库中,等待后续建立索引;之后将该网页的URL放入已抓取URL队列中以避免重复抓取;最后核对网页中所有包含的链接信息,与已抓取URL队列比较,如果链接还没有被抓取过,则将这个URL放入待抓取URL队列末尾。实际上也就是一种BFS广度优先搜索。

  对于爬虫而言,互联网页面分为五个部分:已下载网页集合、已过期网页集合、待下载网页集合、可知网页集合和不可知网页集合。

  已下载网页集合、已过期网页集合都好说,待下载网页集合指待抓取URL列表中的网页,而可知网页集合指那些通过待抓取网页的链接信息最终会被抓取到的网页。

  爬虫也大致分为三种,批量型爬虫、增量型爬虫和垂直型爬虫。

  批量型爬虫有比较明确的抓取范围和目标,达成目标即停止。增量型爬虫会保持持续不断的抓取,对于抓取到的网页,要定期更新。垂直型爬虫关注特定主题内容或属于特定行业的网页。

  爬虫通常需要保护被抓取网站的部分私密性,并减少被抓取网站的网络负载。比如遵守网页禁抓标记,并考虑被抓取网站的负载。

  爬虫质量的评价标准主要有三个:抓取网页覆盖率、抓取网页时新性及抓取网页重要性。尽可能抓取重要的页面,尽可能及时地更新其内容,在此基础上,尽可能扩大抓取范围。

抓取策略

  比较有代表性的抓取策略有广度优先遍历策略、非完全PageRank策略、OPIC策略以及大站优先策略。

广度优先遍历策略

  上面说的『将新下载网页包含的链接追加到待抓取URL队列末尾』就是广度优先遍历的思想。

非完全PageRank策略

  PageRank是种著名的链接分析算法,用来衡量网页的重要性,我们希望利用PageRank的思想来对URL优先级进行排序,但是PageRank是个全局性算法,如果我们特别的只在已下载的网页和待下载网页形成的网页集合进行PageRank计算,这就是非完全的PageRank策略的思想,当计算完成后,将待下载,也即待抓取URL队列里的网页按照PageRank值由高到低排序。

  有几点需要注意,一个是如果每次新抓取到一个网页,就将所有已经下载的网页重新计算非完全PageRank值,这样效率太低。折中的办法是,每当新下载的网页攒够K个,然后重新计算非完全PageRank值。第二个是,既然PageRank计算不是即时的,如果从新下载的网页中抽取的链接重要性非常高,我们通过汇总这个网页所有入链的PageRank值,给它一个临时PageRank值,如果这个值高于队列中网页的PageRank值,那么优先下载这个URL。

OPIC策略(Online Page Importance Computation)

  我们可以将OPIC看做一种改进的PageRank算法,我们为每个页面都给予相同的权重,每当下载了某个页面P后,P将自己拥有的权重平均分给页面中所包含的链接页面。对于待抓取URL队列中的网页,则根据权重值排序,优先下载最高权重的网页。

  OPIC的思路与PageRank基本一致,区别在于OPIC不需要迭代计算直到收敛,所以计算速度远远快于PageRank,适合实时计算使用。OPIC效果略优于广度优先遍历。

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自浅谈搜索引擎基础(上)

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]