网络爬虫的不一样爬取策略,就是运用不一样的方法来确认待爬取URL队列中URL优先性序列的。
网络爬虫的爬取策略有很多种,但不论方法如何,其基本目标一致:优先性选取重要网页进行爬取。
宽度优先性遍历策略(Breath First)
“将新下载网页包含的链接直接追加到待爬取URL队列末尾”,这就是宽度优先性遍历的思想。也就是说,这种方法并没有明确提出和使用网页重要性衡量标准,只是机械地将新下载的网页抽取链接,并追加到待爬取URL队列中,以此安排URL的下载序列。
OCIP策略(Online Page Importance Computation,在线页面重要性计算)
可以将其看做是一种改进的PageRank算法。在算法开始之前,每个互联网页面都给予相同的“现金”(cash),每当下载了某个页面P后,P将自己拥有的“现金”平均分配给页面中包含的链接页面,把自己的“现金”清空。而对于待爬取URL队列中的网页,则根据其手头拥有的现金金额多少排序,优先性下载现金最充裕的网页。OCIP从大的框架上与PageRank思路基本一致,区别在于:PageRank每次需要迭代计算,而OCIP策略不需要迭代过程,所以计算速度远远快于PageRank,适合实时计算使用。同时,PageRank在计算时,存在向无链接关系网页的远程跳转过程,而OCIP没有这一计算因子。实验结果表明,OCIP是种较好的重要性衡量策略,效果略优于宽度优先性遍历策略。
大站优先性策略(Larger Sites First)
大站优先性策略思路很直接:以网站为单位来衡量网页重要性,对于待爬取URL队列中的网页,根据所属网站归类,如果哪个网站等待下载的页面最多,则优先性下载这些链接。其本质思想倾向于优先性下载大型网站,因为大型网站往往包含更多的页面。鉴于大型网站往往是著名企业的内容,其网页质量一般较高,所以这个思路虽然简单,但是有一定依据。实验表明这个算法效果也要略优于宽度优先性遍历策略。
暗网爬取(Deep Web Crawling)
所谓暗网,是指目前搜索引擎网络爬虫按照常规方式很难爬取到的互联网页面。如前所述,搜索引擎网络爬虫依赖页面中的链接关系发现新的页面,但是很多网站的内容是以数据库方式存储的,典型的例子是一些垂直领域网站,比如携程旅行网的机票数据,很难有显式链接指向数据库内的记录,往往是服务网站提供组合查询界面,只有用户按照需求输入查询之后,才可能获得相关数据。所以,常规的网络爬虫无法索引这些数据内容,这是暗网的命名由来。
为了能够对暗网数据进行索引,需要研发与常规网络爬虫机制不一样的系统,这类网络爬虫被称做暗网网络爬虫。暗网网络爬虫的目的是将暗网数据从数据库中挖掘出来,并将其加入搜索引擎的索引,这样用户在搜索时便可运用这些数据,增加信息覆盖程度。
垂直网站提供的搜索界面,往往需要人工选取或者填写内容,比如机票搜索需要选取出发地、到达地和日期,图书搜索需要指出书名或者作者。而暗网网络爬虫为了能够挖掘数据库的记录,必须模拟人的行为,填写内容并提交表单。对于暗网网络爬虫来说,其技术挑战有两点:一是查询组合太多,如果一一组合遍历,那么会给被访问网站造成太大压力,所以如何精心组合查询选项是个难点;第二点在于:有的查询是文本框,比如图书搜索中需要输入书名,网络爬虫怎样才能够填入合适的内容?这个也颇具挑战性。
原文地址:http://blog.51cto.com/14059916/2340650