5种抓取策略,一次性搞定爬虫抓取

在爬虫系统中,待抓取URL队列是很重要的一部分。待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题,因为这涉及先抓取哪个页面,后抓取哪个页面。而决定这些URL排列顺序的方法,叫作抓取策略。本文重点介绍几种常见的抓取策略。

5种抓取策略,一次性搞定爬虫抓取

01、深度优先遍历策略

深度优先搜索是一种在开发爬虫的早期使用较多的方法。它的目的是达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件)。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索一条单独的链。深度优先搜索沿着HTML文件上的超链走到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。优点是能遍历一个Web站点或深层嵌套的文档集合;缺点是因为Web结构相当深,有可能出现一旦进去便再也出不来的情况。

深度优先遍历测试是指网络爬虫会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路的链接之后,再转入下一个起始页继续跟踪链接;我们以图1为例,其遍历的路径为:A-F-G、E-H-I、B、C、D。

5种抓取策略,一次性搞定爬虫抓取

图1 遍历路径图

02、广度优先遍历策略

广度优先策略是按照树的层次进行搜索,如果此层没有搜索完成,则不会进入下一层搜索。也就是说,首先完成一个层次的搜索,其次再进行下一层次,也称为分层处理。我们还是以上面的图1为例,其遍历的路径为:第一层遍历A-B-C-D-E-F,第二层遍历G-H,第三层遍历I。

不过,广度优先遍历策略属于盲目搜索,它并不考虑结果存在的可能位置,会彻底地搜索整张图,因而效率较低;但是,如果你要尽可能多地覆盖网页,那么广度优先搜索方法是较好的选择。

03、Partial PageRank策略

PageRank算法的思想:针对已下载的网页和待抓取URL队列的URL所形成的网页集合,计算每个页面的PageRank值(PageRank是Google对网页重要性的评估,PageRank值的高低是衡量网页在Google搜索引擎中排名的重要参数之一),计算完之后,将待抓取队列中的URL按照网页级别的值的大小排列,并按照顺序依次抓取网址页面。

如果每次新抓取一个网页,便重新计算其PageRank值,那么很明显效率太低。折中的办法是网页攒够K个计算一次。图2即为网页级别的策略示意图。设定每下载3个网页便计算一次新的PageRank值,此时已经有{1,2,3} 3个网页下载到本地。这三个网页包含的链接指向{4,5,6},即待抓取URL队列,那么如何决定下载顺序??

将这6个网页形成新的集合,对这个集合计算其PageRank值,这样4,5,6就获得自己对应的网页级别值,由大到小排序,即可得出下载顺序。假设顺序为5,4,6,在下载页面5后抽取出链接,指向页面8,此时赋予8临时的PageRank值,如果这个值大于4和6的PageRank值,则接下来优先下载页面8,如此不断循环,即形成了非完全的网页级别的策略的计算思路。

5种抓取策略,一次性搞定爬虫抓取

图2 抓取策略过程图

04、大站优先策略

关于大站优先策略,其思路很简单。被认定为“大站”的网站,一定有着稳定的服务器、良好的网站结构、优秀的用户体验、及时的资讯内容、权威的相关资料、丰富的内容类型和庞大的网页数量等特征,当然也会相应地拥有大量高质量的外链。对于待爬取URL队列中的网页,根据所属网站归类,如果哪个网站等待下载的页面最多,则优先下载这些链接。实验表明这个算法效果也要略优先于广度优先遍历策略。

大站优先抓取的解释1:比较贴合字面意思,爬虫会根据待抓取列表中的URL进行归类,然后判断域名对应的网站级别。例如,权重越高的网站,其所属域名越应该优先抓取。

大站优先抓取的解释2:爬虫将待抓取列表里的URL按照域名进行归类,然后计算数量。其所属域名在待抓取列表里数量最多的会优先抓取。

05、反向链接数策略

反向链接数是指一个网页被其他网页链接指向的数量。反向链接数表示的是一个网页的内容受到其他人的推荐的程度。因此,很多时候搜索引擎的抓取系统会使用这个指标来评价网页的重要程度,从而决定不同网页的抓取先后顺序。例如,网页A上有一个链接指向网页B,则网页A上的链接是网页B的反向链接。

在真实的网络环境中,由于广告链接、作弊链接的存在,反向链接数不能完全等于重要程度。因此,搜索引擎往往会考虑一些可靠的反向链接数。

06、OPIC策略

OPIC(Online Page Importance Computation)即“在线页面重要性计算”,其是PageRank的升级版本。它具体的策略逻辑是:爬虫为互联网上所有的URL都赋予一个初始的分值,且每个URL都是同等的分值。每下载一个网页就把这个网页的分值平均分摊给这个页面内的所有链接。自然这个页面的分值就要被清空了。而在待抓取的URL列表里,则是谁的分值最高就优先抓取谁。

区别于PageRank,OPIC是实时计算的。这里提醒我们,无论是OPIC策略还是PageRank策略,都证实了一个逻辑:对于新产生的网页,被链接的次数越多,被抓取的概率就越大。

业界动态

写好分析报告,思路最重要

2021-6-23 10:42:27

业界动态

人人都能打造你的知识收费课程(上)

2021-6-23 10:53:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索