搜索引擎技术之网络爬虫

随着互联网的大力发展 , 互联网称为信息的主要载体 , 而如何在互联网中搜集信息是互联网领域面临的一大挑战 。网络爬虫技术是什么?其实网络爬虫技术就是指的网络数据的抓取 , 因为在网络中抓取数据是具有关联性的抓取 , 它就像是一只蜘蛛一样在互联网中爬来爬去 , 所以我们很形象地将其称为是网络爬虫技术 。其中网络爬虫也被称为是网络机器人或者是网络追逐者 。
网络爬虫技术是搜索引擎架构中最为根本的数据技术 , 通过网络爬虫技术 , 我们可以将互联网中数以百亿计的网页信息保存到本地 , 形成一个镜像文件 , 为整个搜索引擎提供数据支撑 。
1.网络爬虫技术基本工作流程和基础架构
网络爬虫获取网页信息的方式和我们平时使用浏览器访问网页的工作原理是完全一样的 , 都是根据HTTP协议来获取 , 其流程主要包括如下步骤:
1)连接DNS域名服务器 , 将待抓取的URL进行域名解析(URL------>IP);
2)根据HTTP协议 , 发送HTTP请求来获取网页内容 。
一个完整的网络爬虫基础框架如下图所示:
搜索引擎技术之网络爬虫
文章图片

文章图片
整个架构共有如下几个过程:
1)需求方提供需要抓取的种子URL列表 , 根据提供的URL列表和相应的优先级 , 建立待抓取URL队列(先来先抓);
2)根据待抓取URL队列的排序进行网页抓取;
3)将获取的网页内容和信息下载到本地的网页库 , 并建立已抓取URL列表(用于去重和判断抓取的进程);
4)将已抓取的网页放入到待抓取的URL队列中 , 进行循环抓取操作;
2.网络爬虫的抓取策略
在爬虫系统中 , 待抓取URL队列是很重要的一部分 。待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题 , 因为这涉及到先抓取哪个页面 , 后抓取哪个页面的问题 。而决定这些URL排列顺序的方法 , 叫做抓取策略 。下面重点介绍几种常见的抓取策略:
1)深度优先遍历策略
深度优先遍历策略很好理解 , 这跟我们有向图中的深度优先遍历是一样的 , 因为网络本身就是一种图模型嘛 。深度优先遍历的思路是先从一个起始网页开始抓取 , 然后对根据链接一个一个的逐级进行抓取 , 直到不能再深入抓取为止 , 返回上一级网页继续跟踪链接 。
一个有向图深度优先搜索的实例如下所示:
搜索引擎技术之网络爬虫
文章图片

文章图片
搜索引擎技术之网络爬虫
文章图片

文章图片
上图左图为一个有向图示意图 , 右图为深度优先遍历的搜索过程示意图 。深度优先遍历的结果为:
2)广度优先搜索策略
广度优先搜索和深度优先搜索的工作方式正好是相对的 , 其思想为:将新下载网页中发现的链接直接插入待抓取URL队列的末尾 。也就是指网络爬虫会先抓取起始网页中链接的所有网页 , 然后再选择其中的一个链接网页 , 继续抓取在此网页中链接的所有网页 。
搜索引擎技术之网络爬虫
文章图片

文章图片
上图为上边实例的有向图的广度优先搜索流程图 , 其遍历的结果为:
v1→v2→v3→v4→v5→v6→v7→v8
从树的结构上去看 , 图的广度优先遍历就是树的层次遍历 。
3)反向链接搜索策略
反向链接数是指一个网页被其他网页链接指向的数量 。反向链接数表示的是一个网页的内容受到其他人的推荐的程度 。因此 , 很多时候搜索引擎的抓取系统会使用这个指标来评价网页的重要程度 , 从而决定不同网页的抓取先后顺序 。