爬虫原理
2.1
网络爬虫原理
Web
网络爬虫系统的功能是下载网页数据,为搜索引擎系统提供数据来源。很多大型的网
络搜索引擎系统都被称为基于
Web
数据采集的搜索引擎系统,比如
Google
、
Baidu
。由
此可见
Web
网络爬虫系统在搜索引擎中的重要性。网页中除了包含供用户阅读的文字信
息外,还包含一些超链接信息。
Web
网络爬虫系统正是通过网页中的超连接信息不断获得
网络上的其它网页。正是因为这种采集过程像一个爬虫或者蜘蛛在网络上漫游,所以它才
被称为网络爬虫系统或者网络蜘蛛系统,在英文中称为
Spider
或者
Crawler
。
2.2
网络爬虫系统的工作原理
在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三部分组成。控制器的主要
工作是负责给多线程中的各个爬虫线程分配工作任务。解析器的主要工作是下载网页,进
行页面的处理,主要是将一些
JS
脚本标签、
CSS
代码内容、空格字符、
HTML
标签等内容
处理掉,爬虫的基本工作是由解析器完成。资源库是用来存放下载到的网页资源,一般都
采用大型的数据库存储,如
Oracle
数据库,并对其建立索引。
控制器
控制器是网络爬虫的控制器,它主要是负责根据系统传过来的
URL
链接,分配一线程,然
后启动线程调用爬虫爬取网页的过程。
解析器
解析器是负责网络爬虫的主要部分,其负责的工作主要有:下载网页的功能,对网页的文
本进行处理,如过滤功能,抽取特殊
HTML
标签的功能,分析数据功能。
资源库
主要是用来存储网页中下载下来的数据记录的容器,并提供生成索引的目标源。中大型的
数据库产品有:
Oracle
、
Sql Server
等。
Web
网络爬虫系统一般会选择一些比较重要的、出度
(
网页中链出超链接数
)
较大的网站的
URL
作为种子
URL
集合。网络爬虫系统以这些种子集合作为初始
URL
,开始数据的抓取。
因为网页中含有链接信息,通过已有网页的
URL
会得到一些新的
URL
,可以把网页之间
的指向结构视为一个森林,每个种子
URL
对应的网页是森林中的一棵树的根节点。这样,
Web
网络爬虫系统就可以根据广度优先算法或者深度优先算法遍历所有的网页。由于深度
优先搜索算法可能会使爬虫系统陷入一个网站内部,不利于搜索比较靠近网站首页的网页
信息,因此一般采用广度优先搜索算法采集网页。
Web
网络爬虫系统首先将种子
URL
放
入下载队列,然后简单地从队首取出一个
URL
下载其对应的网页。得到网页的内容将其存
储后,再经过解析网页中的链接信息可以得到一些新的
URL
,将这些
URL
加入下载队列。
然后再取出一个
URL
,对其对应的网页进行下载,然后再解析,如此反复进行,直到遍历
了整个网络或者满足某种条件后才会停止下来。
2.2.1
网络爬虫的基本工作流程如下:
1.
首先选取一部分精心挑选的种子
URL
;
2.
将这些
URL
放入待抓取
URL
队列;
3.
从待抓取
URL
队列中取出待抓取在
URL
,解析
DNS
,并且得到主机的
ip
,并将
URL
对
应的网页下载下来,存储进已下载网页库中。此外,将这些
URL
放进已抓取
URL
队列;
4.
分析已抓取
URL
队列中的
URL
,分析其中的其他
URL
,并且将
URL
放入待抓取
URL
队
列,从而进入下一个循环。
评论