网站内容抓取( 爬虫系统中如何确定要爬取URL队列中的URL顺序)
优采云 发布时间: 2021-09-01 04:00网站内容抓取(
爬虫系统中如何确定要爬取URL队列中的URL顺序)
爬虫爬取网站page 策略
在爬虫系统中,要爬取的URL队列是一个非常关键的部分。爬虫要爬取的网页的URL被组织起来,形成一个队列结构。程序员每次从队列的头部拉取一个URL发送给网页下载器下载页面内容,每个新下载的页面中收录的URL都会被添加到URL队列的末尾进行爬取,从而形成一个循环可以说整个tracker系统都是由这个队列驱动的。
如何确定要抓取的URL队列中页面的URL顺序?如上所述,新下载页面中收录的链接将附加到队列的末尾。这当然是确定队列 URL 顺序的一种方法,但不是唯一的方法。实际上,可以使用许多其他技术来捕获队列,并对 URL 进行排序。不同的抓取策略使用不同的方法来确定要抓取的网址队列中网址的优先级。
爬虫的跟踪策略有很多,但无论采用哪种方式,基本目标都是一样的:首先选择重要的网页进行爬取。在跟踪系统中,可以使用不同的方法来确定网页的假设重要性,但大多数方法是根据网页的受欢迎程度来定义的。本书“链接分析”一章介绍的PageRank,是为了评估常见的性别规范在网页上的重要性。
有很多方法可以跟踪策略。本部分仅选取已被证明有效或具有代表性的解决方案,包括以下四类:横断面广度优先策略、不完整 PageRank 策略、OCIP 策略和*敏*感*词*优先站点策略。
广泛的优先策略(BreathFirst)
广度游览是一种非常简单直观的游览方式,历史悠久。搜索引擎爬虫一出现就采用了它。最近提出的跟踪策略使用这种方法作为比较的基准。不过需要注意的是,这个策略也是一种非常强大的方法。许多较新的方法不一定比广度优先遍历策略更好,因此该方法也是许多跟踪系统采用的第一个捕获策略,确实如此。
那么什么是振幅旅行?实际上,前面提到的“将新下载的网页中收录的链接直接追加到待抓取的URL队列底部”是广度优先的想法。也就是说,该方法并没有明确提出和使用衡量网页重要性的标准,而是机械地从新下载的网页中提取链接,加入到待抓取的URL队列中进行排序。网址。图2-7是这种策略的*敏*感*词*:假设队列顶部的网页是网页1,从网页1中提取3个指向网页2、3、4的链接,并按顺序排列数字的顺序。跟踪网址队列,图中网页的编号就是要抓取的网址队列中网页的序号,然后爬虫按照这个顺序下载。
部分 PageRank 策略 (PartialPageRank)
PageRank 是一种流行的链接分析算法,可用于衡量网页的重要性(有关技术细节,请参阅本书的“链接分析”一章)。自然可以想到利用PageRank的思想对URL的优先级进行排序。但是这里有一个问题。 PageRank 是一种全局算法,这意味着当所有网页都被下载时,计算结果是可靠的。爬虫的目的是下载网页,运行时只能查看部分网页。因此,无法在抓取阶段为网页获得可靠的 PageRank 分数。
如果我们继续为这组不完整的网页计算 PageRank 会怎样?这就是不完全PageRank策略的基本思想:对于已下载的网页,将待抓取的URL队列中的URL加入,形成一个网页集合,并对集合进行PageRank计算。计算完成后,将要爬取的URL队列排入队列。里面的页面按照PageRank分数从高到低排序,排列顺序就是爬虫接下来必须爬取的URL列表。这就是为什么它被称为“不完整的 PageRank”。
如果每次抓取一个新的网页,所有下载的网页都重新计算为一个新的不完整的PageRank值,这显然效率太低,在现实中也不可行。一个折衷的方法是:只要有足够K个新下载的网页,对所有下载的网页重新计算一个新的不完整PageRank。这种计算效率勉强可以接受,但带来了一个新问题:在开始下一轮PageRank计算之前,先提取新下载网页中收录的链接。这些链接很可能很重要,应该先下载。这种情况如何解决?不完整的 PageRank 为这些新挖掘的没有 PageRank 值的网页分配一个临时的 PageRank 值。在本网页的链接中传输的所有 PageRank 值都聚合为临时的 PageRank 值。如果这个值大于在要爬取的URL队列中计算出的值,如果页面出现的PageRank值高,则优先下载该URL。
OCIP 策略(在线页面重要性计算)
OCIP 字面意思是“计算在线页面的重要性”,可以认为是一种改进的 PageRank 算法。在算法开始之前,每个互联网页面都会收到相同的“*敏*感*词*”。每当页面 P 被下载时,P 将在页面中收录的链接页面之间平均分配它拥有的“*敏*感*词*”。 “*敏*感*词*”被清空。抓取 URL 队列中的网页,并根据可用*敏*感*词*数量对其进行排序。首先下载*敏*感*词*最多的网页。 OCIP 在其强大的框架上与 PageRank 基本相同。区别在于:PageRank每次都需要迭代计算,而OCIP策略不需要迭代过程,所以计算速度比PageRank快很多,适合实时计算。同时,在计算PageRank时,有一个远程跳转到未链接网页的过程,而OCIP没有这个计算因素。实验结果表明,OCIP是一种较好的重要性度量策略,效果略好于广度优先横断面策略。
Big网站优先(大网站优先)
Great网站priority 策略很简单:网站 衡量网页的重要性。 URL队列中待抓取的网页按照各自的网站进行排名。如果哪个网站等待下载的页面最多,那么这些链接会先下载。基本思路倾向于优先从大网站下载,因为大网站往往收录更多的页面。由于大型网站通常是知名公司的内容,他们的网页一般都是高质量的,所以思路很简单,但有一定的基础。实验表明,该算法的效果略好于cross-width-first策略。