搜索引擎-网络爬虫
网络爬虫
通用搜索引擎的处理对象是互联网网页,目前网页数量以百亿计,搜索引擎的网络爬虫能够高效地将海量的网页数据传下载到本地,在本地 形成互联网网页的镜像备份。它是搜索引擎系统中很关键也很基础的构件。
1. 网络爬虫本质就是浏览器http请求。
浏览器和网络爬虫是两种不同的网络客户端,都以相同的方式来获取网页:
1)首先, 客户端程序连接到域名系统(DNS)服务器上,DNS服务器将主机 名转换成ip 地址。
2)接下来,客户端试着连接具有该IP地址的服务器。服务器上可能有多个 不同进程程序在运行,每个进程程序都在监听网络以发现新的选接。.各个进程监听不同的网络端口 (port). 端口是一个l6位的数卞,用来辨识不同的服务。Http请求一般默认都是80端口。
3) 一旦建立连接,客户端向服务器发送一个http请求,服务器接收到请求后,返回响应结果给客户端。
4)客户端关闭该连接。
2. 搜索引擎爬虫架构
但是浏览器是用户主动操作然后完成HTTP请求,而爬虫需要自动完成http请求,网络爬虫需要一套整体架构完成工作。
尽管爬虫技术经过几十年的发展,从整体框架上已相对成熟,但随着互联网 的不断发展,也面临着一些有挑战性的新问题。
通用的爬虫框架流程:
1)首先从互联网页面中精心选择一部分网页,以这 些网页的链接地址作为种子URL。
2)将这些种子URL放入待抓取URL队列中。
3)爬虫从待抓取 URL队列依次读取,并将URL通过DNS解析,把链接地址转换为网站服务器对应的IP地址。
4)然后将IP地址和网页相对路径名称交给网页下载器。
5)网页下载器负责页面内容的下载。
6)对于下载到本地的网页,一方面将其存储到页面库中,等待建立索引等后续处理;另一方面将下载网页的URL放入己抓取URL队列中,这个队列记载了爬虫系统己经下载过的网页URL,以避免网页的重复抓取。
7)对于刚下载的网页,从中抽取出所包含的所有链接信息,并在已抓取URL队列中检査,如果发现链接还没有被抓取过,则将这个URL放入待抓取URL队列末尾。
8)在之后的抓取调度中会下载这个URL对应的网页,如此这般,形成循环,直到待抓取URL队列为空。
3. 爬虫抓取策略
在爬虫系统中,待抓取URL队列是很重要的一部分。待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪个页面。而决定这些URL排列顺序的方法,叫做抓取策略。
主要有:
1.深度优先搜索策略(顺藤摸瓜)
2.广度优先搜索策略
3.反向链接数策略
4.Partial PageRank策略,即最佳优先搜索策略
5.OPIC策略
6.大站优先策略