阿布云

你所需要的,不仅仅是一个好用的代理。

网络爬虫的原理

阿布云 发表于

7.png

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