动态网页抓取(待URL队列中的URL以什么样的顺序排列算法的思想 )

优采云 发布时间: 2021-10-12 22:26

  动态网页抓取(待URL队列中的URL以什么样的顺序排列算法的思想

)

  遍历策略是爬虫的核心问题。在爬虫系统中,要爬取的URL队列是一个非常重要的部分。URL队列中要抓取的URL的顺序也是一个很重要的问题,因为它涉及到先抓取那个页面,再抓取哪个页面来确定这些URL的顺序,这就是所谓的抓取策略爬虫。主要有以下几种策略:

  1.深度优先遍历策略:

  深度优先遍历测试是指网络爬虫会从起始页开始,逐个跟踪每个链接。处理完这一行的链接后,会转到下一个起始页,继续跟踪链接。我们用下图为例:

  走过的路径是:AFG EHI BCD

  但是,当我们在做爬虫的时候,深度优先策略可能并不适用于所有情况。如果深度优先误入无限分支(深度不限),则无法找到目标节点。

  二、广度优先遍历策略:

  广度优先策略是根据树的级别进行搜索。如果在这一层没有完成搜索,则不会进入下一层搜索。即先完成一级搜索,再进行下一级,也称为分层处理。我们也以上图为例:

  遍历路径为:第一次遍历:ABCDEF,第二次遍历:GH,第三次遍历:I

  然而,广度优先遍历策略是一种盲目搜索。它不考虑结果的可能位置,会彻底搜索整个图像,效率较低。但是,如果您想覆盖尽可能多的网页,广度优先搜索方法是更好的选择。

  三、部分PageRank策略:

  PageRank算法的思想:对于下载的网页,连同要爬取的URL队列的URL,组成一个网页集,计算每个页面的PageRank值(PageRank算法参考:PageRank算法-从原理到实现),计算完成后,按照页面级别的值排列待爬取队列中的URL,依次爬取URL页面。

  如果每次都爬一个新的页面,重新计算出来的PageRank值显然效率太低了。折中是保存足够的网页来计算一次。

  下图是web级策略的*敏*感*词*:

  为每下载 3 个网页设置一个新的 PageRank 计算。此时,本地已经下载了3个网页{1,2,3}。这三个网页中收录的链接指向{4,5,6},这是要爬取的URL队列。如何确定下载顺序?

  将这6个网页组成一个新的集合,计算这个集合的PageRank值,这样4、5、6就会得到各自对应的页面排名值,从大到小排序,假设下载顺序可以得到。5、4、6,下载55页时,提取链接指向第8页,此时临时分配PageRank值为8。如果此值大于 4 和 6 的 PageRank,则将首先下载第 8 页,依此类推。流通,即不完全网络级策略的计算思想形成。

  四、OPIC策略策略(在线页面重要性计算):

  基本思想:在算法开始之前,给所有页面相同的初始*敏*感*词*(cash)。下载一个页面P后,将P的*敏*感*词*分配给所有从P解析的链接,并清空P的*敏*感*词*。所有要爬取的URL队列中的页面按照*敏*感*词*的数量进行排序。

  与PageRank不同的是:PageRank每次都需要迭代计算,而OPIC策略不需要迭代过程,所以计算速度比PageRank快很多,适合实时计算。

  五、各大站优先策略:

  策略:以网站为单位选择网页重要性的主题。对于URL队列中要爬取的网页,根据自己的网站进行分类,如果哪个网站等待下载的页面最多,先下载这些链接,本质思路倾向于优先下载大的网站。因为大 网站 往往收录更多页面。鉴于大型网站往往是知名公司的内容,而且他们的网页一般都是高质量的,这个想法很简单,但是有一定的依据。实验表明,该算法的效果略优于宽度优先遍历策略。

  花生代理动态IP更改软件可实现全国城市IP自动切换,千万级动态IP池,支持过滤,支持电脑手机多终端使用,数万条随机拨号线路, 24小时不间断提供动态IP。

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线