第一章 认识网络爬虫

第一章 什么是网络爬虫
前言:
如何可以自动高效获取互联网中咱们所感兴趣的内容就是须要爬虫技术所专研的。
而咱们感兴趣的信息又分为不一样类型:若是是作搜索引擎,那么感兴趣的信息就是高质
量网页;若是要获取某一领域的数据或者是明确的检索需求,那么感性趣的信息就是
根据咱们的检索和需求定位相关信息,同时也须要过滤一些无用、干扰的信息。

1.1 初始网络爬虫
网络爬虫又称为网络蜘蛛、网络蚂蚁、网络机器等,能够自动化浏览网络中信息,而咱们
爬取的信息须要按照咱们制定的规则进行,这些规则咱们称之为网络爬虫算法。

使用python可以便于编写爬虫程序,进行互联网信息自动化检索。

搜索引擎离不开爬虫,如百度搜素引擎爬虫成为百度蜘蛛。须要百度蜘蛛天天
在海量的互联网信息中进行爬取,爬取优质信息并收录,当用户在百度搜索引擎上检
索对应关键词时,百度将对关键词进行分析处理,从收录的网页中找出相关网页,
按照必定的排名规则进行排序并将结果展示给用户。

而对于这些优质网页的查找及网页排序及去重是经过百度蜘蛛爬虫算法实现的。从中
使用不一样的算法所取得的结果是不同的,若是将优质网页查找出来及网页排序去重作到
更加优质,就须要改进/更新算法。因此,咱们有必要对爬虫算法要有所了解,而且也要有
本身建立算法的心理准备。

除了百度搜索引擎离不开爬虫之外,其余搜索引擎也离不开爬虫,它们也拥有本身
的爬虫。好比360的爬虫叫360Spider,搜狗的爬虫叫Sogouspider,必应的爬虫叫
Bingbot。
若是想本身实现一款小型的搜索引擎,咱们也能够编写出本身的爬虫去实现,
固然,虽然可能在性能或者算法上比不上主流的搜索引擎,可是个性化的程
度会很是高,而且也有利于咱们更深层次地理解搜索引擎内部的工做原理。

在先进的大数据时代是离不开爬虫的,好比在进行大数据分析或数据挖掘时,咱们能够
去一些比较大型的官方站点下载数据资源,而如何可以从这些资源中获取高质量的
的数据源,这就是爬虫须要解决的;同时对于我的而言,因为信息愈来愈多,如何
精确获取本身感兴趣的信息,也是咱们为本身准备的搜索引擎。



1.2 为何要学习网络爬虫

1 学习爬虫,能够私人定制一个搜索引擎,而且能够对搜索引擎的数据采集的工做原
  理进行更深层次的理解。
  简单来讲,咱们学会了爬虫编写以后,就能够利用爬虫自动地采集互联网中的信息,
  采集回来后进行相应的存储或处理,在须要检索某些信息的时候,只需在采集回来
  的信息中进行检索,  即实现了私人的搜索引擎。固然,信息怎么爬取、怎么存储、
  怎么进行分词、怎么进行相关性计算等,都是须要咱们进行设计的,爬虫技术主要
  解决信息爬取的问题。
 
2  大数据时代,要进行数据分析,首先要有数据源,而学习爬虫,可让咱们获取更多
   的数据源

3  对于不少SEO从业者来讲,学习爬虫,能够更深层次地理解搜索引擎爬虫的工做原理,
   从而能够更好地进行搜索引擎优化

4)从就业的角度来讲,爬虫工程师目前来讲属于紧缺人才,而且薪资待遇广泛较高

你还有一些其余学习爬虫的缘由,总之,不论是什么缘由,理清本身学习的目的,
就能够更好地去研


1.3 网络爬虫的组成
网络爬虫由控制节点、爬虫节点和资源库构成。

                                                  图1-1所示是网络爬虫的控制节点和爬虫节点的结构关系
python

 


从中能够看到,每一个控制节点中能够有一个或多个爬虫节点而且可以相互通讯,控制节点之间能够
相互通讯;属于同一个控制节点下的各爬虫节点也能够相互通讯。

控制节点,也叫做爬虫的中央控制器,主要负责根据URL地址分配线程,并调用爬虫节点
进行具体的爬行。

爬虫节点会按照相关的算法,对网页进行具体的爬行,主要包括下载网页以及对网页
的文本进行处理,爬行后,会将对应的爬行结果存储到对应的资源库中。

1.4 爬虫类型:

网络爬虫按照实现的技术和结构能够分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫
、深层网络爬虫等类型。
1.4.1 通用网络爬虫
通用网络爬虫(General Purpose Web Crawler)也成为全网爬虫,从中可知其目标
资源在全互联网中。从中能够预测经过用网络爬虫所获的的目标数据是巨大的,爬行
范围也是很是大的,那么可以支撑起这类爬虫的,其相关硬件与软件的性能要求也是很是高的,
这类爬虫主要应用在大型搜索引擎中。

通用网络爬虫主要由URL集合、URL队列、页面爬行模块、页面分析模块、页面数据
库、连接过滤模块等构成。通用网络爬虫在爬行的时候会采起必定的爬行策略,
主要有深度优先爬行策略和广度优先爬行策略。

1.4.2 聚焦网络爬虫
聚焦网络爬虫(Focunsed Crawler)也叫作主题网络爬虫。聚焦网络爬虫是按照预先定义
的主题有目的的进行网络爬取的一种爬虫,聚焦网络爬虫不一样于网络爬虫同样将目标资源
定位在全互联网中,而是将爬取目标定位在与主题相关的页面中,此时,能够大大节省爬
虫所需爬取所需的宽带资源和服务器资源。聚焦网络爬虫主要应用在对特定信息的爬取中
,主要为某一类特定的人群提供服务。

聚焦网络爬虫主要由初始URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、
连接过滤模块、内容评价模块、连接评价模块等构成。内容评价模块能够评价内容的重要性,
同理,连接评价模块也能够评价出连接的重要性,而后根据连接和内容的重要性,能够肯定
哪些页面优先访问。聚焦网络爬虫的爬行策略主要有4种,即基于内容评价的爬行策略、
基于连接评价的爬行策略、基于加强学习的爬行策略和基于语境图的爬行策略。

1.4.3 增量式网络爬虫
增量式网络爬虫(Incremental Web Crawler),所谓增量式,对应着增量式更新。增量式更新
指的是在更新的时候只更新改变的地方,而未改变的地方则不更新。因此,增量式网络爬虫
就是只爬取发生变化的网页或者是新网页,对于未发生内容改变的网页则不需爬取,从而保证了
所爬取到的页面尽量是新页面。

1.4.4 深层网络怕从
深层网络爬虫(Deep Web Crawler),能够爬取互联网中深层页面。在互联网中网页按存在
方式分类,可分为表层页面和深层页面。所谓的表层页面,指的是不须要提交表单,使用静
态的连接就可以到达的静态页面;而深层页面则隐藏在表单后面,不能经过静态连接直接获
取,是须要提交必定的关键词以后才可以获取获得的页面。在互联网中,深层页面的数量往
往比表层页面的数量要多不少,故而,咱们须要想办法爬取深层页面。

爬取深层页面,须要想办法自动填写好对应表单,因此,深层网络爬虫最重要的部分即为表
单填写部分。

深层网络爬虫主要由URL列表、LVS列表(LVS指的是标签/数值集合,即填充表单的数据源)、
爬行控制器、解析器、LVS控制器、表单分析器、表单处理器、响应分析器等部分构成。

深层网络爬虫表单的填写有两种类型:第一种是基于领域知识的表单填写,简单来讲就是
创建一个填写表单的关键词库,在须要填写的时候,根据语义分析选择对应的关键词进行
填写;第二种是基于网页结构分析的表单填写,简单来讲,这种填写方式通常是领域知识
有限的状况下使用,这种方式会根据网页结构进行分析,并自动地进行表单填写。

1.5 聚焦爬虫
图1-2所示为聚焦爬虫运行的流程,熟悉该流程后,咱们能够更清晰地知道聚焦爬虫的工做
原理和过程。


首先,聚焦爬虫拥有一个控制中心,该控制中心负责对整个爬虫系统进行管理和监控,主要
包括控制用户交互、初始化爬行器、肯定主题、协调各模块间的工做、控制爬行过程等。

而后,控制中心将初始的URL集合传递给URL队列,页面爬行模块会从URL队列中读取第一批URL
列表,而后根据这些URL地址从互联网中进行相应的页面爬取。爬取后,将爬取到的内容传到
页面数据库中存储,同时,在爬行过程当中,会爬取到一些新的URL,此时,须要咱们根据所定的
主题使用连接过滤模块来过滤无用的URL(连接),在将剩下的URL连接根据主题使用连接评价
模块或内容评价模块进行优先级的排序。完成后,将新的URL地址传递到URL队列中,供页面爬
行模块使用。另外一方面,将页面爬取并存放到页面数据库后,须要根据主题使用页面分析模块
对爬取到的页面进行页面分析处理,并根据处理结果创建索引数据库,用户检索对应信息时,
能够从索引数据库中进行相应的检索,并获得对应的结果。

这就是聚焦爬虫的主要工做流程,了解聚焦爬虫的主要工做流程有助于咱们编写聚焦爬虫,使
编写的思路更加清晰。算法

相关文章
相关标签/搜索