3.工作流程
网络爬虫的工作流程如图8.1所示,具体说明如下:
(1)选取一.部分精心挑选的种子URL。
(2)将这些URL放人待抓取URL队列。
(3)从待抓取URL队列中取出待抓取的URL,解析DNS,得到主机的IP,并将URL对应的网页下载下来,存储到已下载网页库中。此外,将这些URL放进已抓取URL队列。(4)分析已抓取URL队列中的URL,分析其中的其他URL,并且将这些新的URL放人待抓取URL队列,从而进入下一个循环。
网络爬虫是搜索引擎中最核心的部分,整个搜索引擎的素材库来源于网络爬虫的采集,从搜索引擎整个产业链来看,网络爬虫是处于最上游的产业,其性能好坏直接影响着搜索引擎整体性能和处理速度。
通常网络爬虫从一个或若干个初始网页上的URL开始,获得初始网页上的URL列表,在抓取网页过程中,不断从当前页面上抽取新的URL放人待抓取URL队列,直到满足系统的停止条件,如图8.2所示。
网络爬虫各个部分的主要功能如下:
(1)页面采集模块。该模块是爬虫和因特网的接口,主要作用是通过各种Web协议(一般以HTTP、FTP为主)完成对网页数据的采集,保存后将采集到的页面交给后续模块做进一- 步处理。其过程类似于用户使用浏览器打开网页,保存的网页供其他后续模块处理,例如页面分析、链接抽取。
(2)页面分析模块。该模块的主要功能是对页面采集模块采集的页面进行分析.提取其中满足用户要求的超链接,加人超链接队列中。页面链接中给出的URL一般是多种格式的,可能是完整的包括协议、站点和路径的,也可能是省略了部分内容的,还可能是一个相对路径。所以为处理方便,一- 般进行规范化处理,先将其转化成统一的格式。
(3)链接过滤模块。该模块主要是用于对重复链接和循环链接的过滤。例如,相对路径需要补全URL,然后加入到待采集URL队列中。此时,一般会过滤掉队列中已经包含的URL以及循环链接的URL。
(4) 页面库。用来存放已经采集下来的页面,以备后期处理。
(5)待抓取URL队列。从采集网页中抽取并进行相应处理后得到的URL.当URL为空时爬虫程序终止。
(6)初始URL。 提供URL种子,以启动爬虫。
4.抓取对象
网络爬虫的抓取对象可以分为以下4类:
(1)静态网页。网络爬虫在互联网上从一个网站的初始网页开始.获得网页上的链接,在抓收过程中不断获得新的链接.直到达到系统指定的方式才会停止。
(2)动态网页。先通过程序分析一此非静态网 页的参数,按一定 的规则对所有要抓取页面的链接进行整理,程序只会抓取这些特定范围内的网页。
(3)特殊内容。比如RSS、XML数据,由于情况特殊,需特殊处理。例如,新闻的滚动页面需要爬虫不停地监控扫描,发现新内容马上就抓取。
(4)文件对象。目前网页上会有各种类型的文件,如图片、MP3、Flash、 视频等文件,这些都需要系统用一一定的方式处理。例如,视频被抓取后,要知道其类型、文件大小、分辨率等。