关于我们

什么是网络爬虫

网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫是捜索引擎抓取系统的重要组成部分,主要目的是将互联网上的网页下载到本地形成一个互联网内容的镜像备份。
通俗点来说,网络爬虫就像是模拟人类搜索行为的一只只小虫子,在网络世界里爬来爬去,搜索我们需要的信息。
不过随着随着互联网的发展,网络上的资源变得日益丰富但却驳杂不堪,信息的获取成本变得更高了,相应地,也日渐发展出更加智能,且适用性更强的爬虫软件。

网络爬虫组成

网络爬虫由控制节点、爬虫结点、资源库组成。
网络爬虫中可以有多个控制节点,每个控制节点下有多个爬虫结点,控制节点之间可以互相通信,同时,控制结点和其下的个爬虫结点之间也可以进行相互通信。
控制节点:也叫做爬虫的中央控制器,主要负责根据URL地址分配线程,并调用爬虫结点进行具体的爬行。
爬虫节点:按照设定的算法,对网页进行具体的爬行,主要包括下载网页以及对网页的文本进行处理,爬行后,会将对应的爬行结果存储到对应的资源库中。

爬虫技术分类
概念构成爬行分类
通用网络爬虫 该类型爬取的资源在全互联网中,由于爬取数量大,对应的爬取性能要求较高,主要应用于大型搜索引擎。 URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等。采取的策略主要有深度优先爬行策略,广度优先爬行策略。
增量式网络爬虫 即爬取内容发生改变的网页或者新产生的网页,对于未发生内容改变的网页则不会爬取。
深层网络爬虫 即可以爬取网络中的深层页面。在互联网中,网页分为表层网页和深层网页。表层网页即指不需要提交表单的静态页面;而深层页面即指通过提交表单或者输入关键词才能够获取到的页面。 URL列表、LVS列表(LVS指的是标签/数值集合,即填充表单1数据源、爬行控制器、解析器、LVS控制器、表单分析器、表单处理器、响应分析器等。
聚焦网络爬虫 可以按照预先定义好的主题有选择的进行网页爬取的一种爬虫。通过将爬取的目标网页定位在与主题相关的页面中,因此可以大大的节约爬虫所需的带宽资源和服务器资源。 URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块、内容评价模块、链接评价模块等。内容评价模块可以评价内容的重要性,同理链接评价模块也可以评价出链接的重要性,然后根据链接和内容的重要性来确定哪些页面优先访问。 基于内容评价的爬行策略、基于链接评价的爬行策略、基于增强学习的爬行策略,基于语境图的爬行策略。
通用
网络爬虫
概念:该类型爬取的资源在全互联网中,由于爬取数量大,对应的爬取性能要求较高,主要应用于大型搜索引擎。
构成:URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等。采取的策略主要有深度优先爬行策略,广度优先爬行策略。
增量式
网络爬虫
概念:即爬取内容发生改变的网页或者新产生的网页,对于未发生内容改变的网页则不会爬取。
深层
网络爬虫
概念:即可以爬取网络中的深层页面。在互联网中,网页分为表层网页和深层网页。表层网页即指不需要提交表单的静态页面;而深层页面即指通过提交表单或者输入关键词才能够获取到的页面。
构成:URL列表、LVS列表(LVS指的是标签/数值集合,即填充表单1数据源、爬行控制器、解析器、LVS控制器、表单分析器、表单处理器、响应分析器等。
聚焦
网络爬虫
概念:可以按照预先定义好的主题有选择的进行网页爬取的一种爬虫。通过将爬取的目标网页定位在与主题相关的页面中,因此可以大大的节约爬虫所需的带宽资源和服务器资源。
构成:URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块、内容评价模块、链接评价模块等。内容评价模块可以评价内容的重要性,同理链接评价模块也可以评价出链接的重要性,然后根据链接和内容的重要性来确定哪些页面优先访问。
爬行策略:基于内容评价的爬行策略、基于链接评价的爬行策略、基于增强学习的爬行策略,基于语境图的爬行策略。
爬虫的工作流程

如此反复进行,直到遍历了整个网络或者满足某种条件后,才会停止下来。

常用爬虫辅助工具

Chrome

Chrome属于爬虫的基础工具,一般用它做初始的爬取分析,页面逻辑跳转、简单的js调试、网络请求的步骤等。

Charles去官网>

Charles与Chrome对应,只不过它是用来做App端的网络分析,相较于网页端,App端的网络分析较为简单,重点放在分析各个网络请求的参数。

cURL

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。

Postman去官网>

Postman着实强大,配合cURL,可以将请求的内容直接移植过来,然后对其中的请求进行改造,勾选即可选择想要的内容参数,非常优雅。

Online JavaScript Beautifier去官网>

想要进阶就需要面对更复杂的网站爬虫,不仅要会后端的知识,还需要了解一些前端的知识,因为很多网站的反爬措施是放在前端的。需要提取对方站点的js信息,并需要理解和逆向回去,原生的js代码一般不易于阅读,这时,就要Online JavaScript Beautifier来帮你格式化。

XPath Helper

在提取网页数据时,一般需要使用xpath语法进行页面数据信息提取。但一般只能写完语法,发送请求给对方网页,打印出来,才知道提取的数据是否正确,这样一方面会发起很多不必要的请求,另外一方面,也浪费了时间。这时就可以用到XPath Helper了。
安装方法:打开Chrome的网上应用店,搜索XPath Helper,点击“添加至chrome”即可。

Sketch

已经确定能爬取之后,不应该着急动手写爬虫,而是应该着手设计爬虫的结构。按照业务的需求,可以做一下简单的爬取分析,这有助于之后开发的效率,所谓磨刀不误砍柴工就是这个道理。

EditThisCookie

如果要对Cookies动手脚,就需要EditThisCookie来辅助你分析,通过Chrome安装EditThisCookie插件后,我们可以对Cookies里的信息进行增删改查操作,大大提高对Cookies信息的模拟。

JSONView去官网>

有时候提取的数据是Json格式的,因为它简单易用,越来越多的网站倾向于用Json格式进行数据传输。安装这个插件后,就可以很方便的来查看Json数据。

JSON Editor Online去官网>

借助JSON Editor Online可以帮你很好的格式化数据,并且实现了贴心得折叠Json数据功能。

文章精选