APP下载

Java爬虫技术之网络爬虫爬取策略

消息来源:baojiabao.com 作者: 发布时间:2024-05-01

报价宝综合消息Java爬虫技术之网络爬虫爬取策略

在网络爬虫爬取的过程,在待爬取的URL列表中,可能有很多URL地址,那么这些URL地址,爬虫应该先爬取哪个,后爬取哪个呢?

在通用网络爬虫中,虽然爬取的顺序并不是那么重要,但是在其他很多爬虫中,比如聚焦网络爬虫中,爬取的顺序非常重要,而爬取的顺序,一般由爬行策略决定。我们将为大家介绍一些常见的爬行策略。

深度优先策略

深度优先遍历策略是指网络爬虫从起始页开始,一个连结一个连结跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪,直至结束。如图:深度优先采集规则: 先采集A-F-G这条线 再采集E-H-I这条线 软后再采集 B C D节点。

深度优先策略是一种在开发爬虫工具早期使用较多的方法。它的目的是要达到被搜寻网页结构的叶节点(即那些不包含任何超链接的HTML档案)。

在一个HTML档案中,当一个超链接被选择后,被连结的HTML档案将执行深度优先搜寻,即在搜寻其余的超链接结果之前必须先完整的搜寻单独的一条链。

深度优先搜寻沿着HTML档案上的超链接直到不能在深入为止,然后返回到某一个HTML档案,再继续选择该HTML档案中的其他超链接。当不再有超链接可选择时,说明搜寻已经结束。

优点:能遍历一个web站点或深层次巢状的文件集合。

缺点:因为web结构相当深,有可能是死循环,有一旦进去就可能再也出不来的情况的发生。

宽度优先策略:

宽度优先策略的基本思路:将新下载网页中发现的超链接直接插入到待抓取URL伫列的末尾。也就是指网络爬虫会先抓取网页中所有连结的所有网页,然后再选择其中一个连结网页继续抓取在此网页中的所有网页。 宽度优先采集的规则, 如右图:采集顺序为A-B-C-D-F 再采集G H I。

在宽度优先搜寻中,先搜寻完一个web页面中所有的超链接,然后再继续搜寻下一层,直到底层为止。

例如:一个HTML网页档案中有三个超链接,选择其中之一并处理相应的HTML档案,然后不再继续选择第二个HTML档案中的任何超链接,而是返回并选择第二个超链接,处理相应的HTML档案,再返回选择第三个超链接并处理相应的HTML档案。一旦一层上的所有超链接都已被选择,就可以开始在刚才处理过的HTML档案中搜索的其余的超链接。这就保证了对浅层的首先处理。当遇到一个无穷无尽的深层分支时,不会导致陷入死循环当中出不来的情况方生。

优点:它能在两个HTML档案之间找到最短路径。宽度优先策略通常是实现爬虫的最佳策略,因为他容易实现,而且具备大多数期望的功能。

缺点: 如果要遍历一个指定的站点或者深层巢状的HTML网页集用宽度优先搜寻则需要花费比较长的时间才能到达深层次的HTML档案。

综合上述:考虑以上几种策略和国内资讯导航系统搜寻资讯的特点,国内一般采用宽度优先策略为主,线形搜寻策略为辅的爬取策略。对于某些不被引用或很少被引用的HTML档案,宽度优先策略可能会遗漏这些孤立的资讯源,可以使用线性搜寻策略作为爬取的补充。

非完全PageRank策略

PageRank算法是Google搜索引擎页面抓取采用的算法。

非完全PageRank策略基本思路是对于已经下载的网页,加上待抓取URL伫列中的URL一起,形成网页集合,在此集合内进行PageRank计算,计算完成后,将待抓取URL伫列里的网页按照PageRank得分由高到低排序,形成的序列就是爬虫接下来应该依次抓取的URL列表。

缺点:如果每次新抓取到一个网页,就进行重新计算新的非完全PageRank,明显效率太低。折中办法是网页攒够K个计算一次。

OCIP策略(Online Page Importance Computation)

即线上页面重要性计算

基本思路: 在算法开始之前,每个互联网页面都给予相同的“现金”,每当下载了某个页面P后,P就将自己拥有的现金平均分配给页面中包含的连结页面,把自己的“现金”清空。而对于待爬取URL伫列中的网页,则根据其手头拥有的“现金”金额多少排序,优先下载“现金”最多的网页,OPIC从大的框架上与PageRank思路基本一致。

与PageRank的区别在于:PageRank每次需要迭代计算,而OPIC策略不需要迭代过程。所以计算速度远远快与PageRank,适合实时计算使用。同时,PageRank在计算时,存在向无连结关系网页的远端跳转过程,而OPIC没有这一计算因子。实验结果表明,OPIC是较好的重要性衡量策略,效果略优于宽度优化遍历策略。

大站优先策略(Larger Sites First)

思路: 以网站为单位来选题网页重要性,对于待爬取URL伫列中的网页,根据所属网站归类,如果哪个网站等待下载的页面最多,则优先下载这些连结,其本质思想倾向于优先下载大型网站。因为大型网站往往包含更多的页面。

鉴于大型网站往往是著名企业的内容,其网页质量一般较高,所以这个思路虽然简单,但是有一定依据。实验表明这个算法效果也要略优先于宽度优先遍历策略。

2019-12-04 15:59:00

相关文章