通用爬虫框架通用的爬虫整体架构完成工作的新问题

优采云 发布时间: 2021-08-14 21:24

  

通用爬虫框架通用的爬虫整体架构完成工作的新问题

  2.搜索引擎爬虫架构

  但是浏览器是用户主动操作然后完成HTTP请求,爬虫需要自动完成http请求,而网络爬虫需要一套整体架构来完成工作。

  虽然爬虫技术经过几十年的发展在整体框架上已经比较成熟,但是随着互联网的不断发展,它也面临着一些具有挑战性的新问题。一般爬虫框架如下:

  

  通用爬虫框架

  一般爬虫框架流程:

  1)首先从互联网页面中仔细选择一些网页,并以这些网页的链接地址作为*敏*感*词*网址;

  2)将这些*敏*感*词*网址放入网址队列进行抓取;

  3)爬虫依次从待爬取的URL队列中读取,通过DNS解析URL,将链接地址转换为网站服务器对应的IP地址。

  4)然后将网页的IP地址和相对路径名交给网页下载器,

  5)Web Downloader 负责下载页面内容。

  6)对于本地下载的网页,一方面存储在页面库中,等待索引等后续处理;另一方面,将下载的网页的网址放入已爬取的网址队列中,该队列记录了爬虫系统已经下载过的网页的网址,避免网页的重复抓取。

  7) 对于新下载的网页,提取其中收录的所有链接信息,在爬取的URL队列中查看。如果发现链接没有被爬取,就会放入待爬取的URL中 把URL团队搞坏!

  8、9)末尾,在后续的爬取调度中会下载该URL对应的网页,依此类推,形成一个循环,直到待爬取的URL队列为空。

  3.Crawler 爬取策略

  在爬虫系统中,要爬取的URL队列是一个非常重要的部分。 URL队列中要爬取的URL的顺序也是一个很重要的问题,因为它涉及到先爬哪个页面,后爬哪个页面。确定这些 URL 顺序的方法称为抓取策略。

  3.1 深度优先搜索策略(顺藤摸瓜)

  图的深度优先遍历算法。网络爬虫会从起始页开始,逐个跟踪每一个链接,处理完这一行后跳转到下一个起始页,继续跟踪链接。

  我们用图片来说明:

  我们假设互联网是一个有向图,图中的每个顶点代表一个网页。假设初始状态是图中所有的顶点都没有被访问过,那么深度优先搜索可以从图中的某个顶点开始,访问这个顶点,然后从v的未访问过的相邻点进行到深度优先遍历图,直到图中所有具有连接到v的路径的顶点都被访问;如果此时图中还有没有被访问过的顶点,则选择图中另一个没有被访问过的顶点作为起点,重复上述过程,直到图中所有顶点都被访问过到目前为止。

  以下图中的无向图G1为例,对该图进行深度优先搜索:

  

  G1

  搜索过程:

  

  假设搜索和爬取从顶点页面v1开始,访问页面v1后,选择相邻点页面v2。因为v2之前没有访问过,所以从v2开始搜索。以此类推,搜索从 v4、v8 和 v5 开始。访问 v5 后,由于 v5 的所有相邻点都已访问过,搜索返回到 v8。出于同样的原因,搜索继续回到 v4、v2 直到 v1。此时,由于没有访问过v1的另一个相邻点,搜索从v1到v3,然后继续。由此,得到的顶点访问顺序为:

  

  3.2 广度优先搜索策略

  广度优先遍历策略的基本思想是将新下载的网页中找到的链接直接插入到待抓取的URL队列的末尾。即网络爬虫会先抓取起始网页中链接的所有网页,然后选择其中一个链接的网页,继续抓取该网页中链接的所有网页。该算法的设计和实现比较简单。目前,为了覆盖尽可能多的网页,一般采用广度优先搜索的方法。也有许多研究将广度优先搜索策略应用于聚焦爬虫。基本思想是,距离初始 URL 一定链接距离内的网页具有很高的主题相关性概率。另一种方法是将广度优先搜索与网络过滤技术相结合。首先使用广度优先策略抓取网页,然后过滤掉不相关的网页。这些方法的缺点是随着抓取网页的增多,会下载并过滤大量不相关的网页,算法的效率会降低。

  以上图为例,爬取过程如下:

  广泛的搜索过程:

  

  首先访问页面v1和v1的相邻点v2和v3,然后依次访问v2的相邻点v4和v5以及v3的相邻点v6和v7,最后访问v4的相邻点v8。由于这些顶点的相邻点都被访问过,并且图中的所有顶点都被访问过,所以对图的这些遍历就是由这些完成的。得到的顶点访问顺序为:

  v1→v2 →v3 →v4→ v5→ v6→ v7 →v8

  与深度优先搜索类似,遍历过程中也需要一组访问标志。另外,为了顺序访问路径长度为2、3、...的顶点,必须附加一个队列来存储已经访问过的路径长度为1、2、...的顶点。

  3.2 最佳优先搜索策略

  最佳优先级搜索策略根据一定的网页分析算法预测候选网址与目标网页的相似度或与主题的相关性,并选择一个或几个评价最好的网址进行抓取。

  3.3.Backlink 号码策略

  反向链接数是指从其他网页链接到某个网页的数量。反向链接的数量表示网页内容被他人推荐的程度。因此,很多时候搜索引擎的爬取系统都会使用这个指标来评估网页的重要性,从而决定不同网页的爬取顺序。

  在真实的网络环境中,由于广告链接和作弊链接的存在,反向链接的数量不能完全坐等别人的重视。因此,搜索引擎通常会考虑一些可靠的反向链接。

  3.4.Partial PageRank 策略,最佳优先级搜索策略

  Partial PageRank算法借鉴了PageRank算法的思想:根据一定的网页分析算法,预测候选网址与目标网页的相似度,或与主题的相关性,选择一个或几个网址以最好的评价。 fetch,即对于下载的网页,连同要爬取的URL队列中的URL,组成一个网页集,计算每个页面的PageRank值,计算完成后,将URL队列中的URL被抓取的页面按照PageRank值排列,并按照这个顺序抓取页面。

  它只访问被网络分析算法预测为“有用”的网页。一个问题是爬虫爬取路径上的很多相关网页可能会被忽略,因为最好的优先级策略是局部最优搜索算法。因此,需要将最佳优先级与具体应用结合起来进行改进,才能跳出局部最佳点。研究表明,这种闭环调整可以将不相关网页的数量减少30%到90%。

  如果每个页面都被抓取,则重新计算 PageRank 值。一个折衷的解决方案是:每爬取 K 个页面后,重新计算 PageRank 值。但是,这种情况下仍然存在一个问题:对于从下载页面中分析出来的链接,也就是我们前面提到的未知网页部分,暂时没有PageRank值。为了解决这个问题,这些页面会被赋予一个临时的PageRank值:将所有传入该页面链的PageRank值聚合起来,从而形成未知页面的PageRank值参与排名。

  3.5.OPIC 策略 策略

  该算法实际上对页面的重要性进行评分。在算法开始之前,给所有页面相同的初始*敏*感*词*(cash)。下载某个页面P后,将P的*敏*感*词*分配给所有从P分析的链接,并清除P的*敏*感*词*。待抓取的 URL 队列中的所有页面均按*敏*感*词*数量排序。

  3.6.大站优先策略

  所有需要爬取的URL队列中的网页都按照所属的网站进行分类。 网站有大量页面需要下载,优先下载。因此,这种策略被称为大站优先策略。

  4. 网页更新策略 互联网是实时变化的,是高度动态的。网页更新策略主要是决定什么时候更新之前下载过的页面。共有三种常见的更新策略:

  1.历史参考策略

  顾名思义,根据页面之前的历史更新数据,预测页面未来什么时候会发生变化。一般来说,预测是通过泊松过程建模进行的。

  2.用户体验策略

<p>虽然搜索引擎可以针对某个查询条件返回大量结果,但用户往往只关注结果的前几页。因此,爬虫系统可以先更新那些实际在查询结果前几页的网页,然后再更新后面的那些网页。此更新策略还需要历史信息。用户体验策略保留网页的多个历史版本,并根据过去每次内容变化对搜索质量的影响得出平均值,并以此值作为决定何时重新抓取的依据。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线