对于数据分析来说,首先我们要先有数据,那这些数据又从和而来呢?
其中一种采集数据的方法就是网络爬虫,也是我这周的学习内容。
要想入门爬虫,首先需要有一些关于网络的基础知识,毕竟我们的小爬虫就是生活在这张网上的。之后按照传统的教程都会教你做一些基础的爬虫,这部分我之前看过一点,所以这周就想先了解下现在非常火爆的爬虫框架——Scrapy,也就是下面这张图呢。
初看这张图是不是有点眼花缭乱?不过只要你对它稍微了解一点,你就会发现别人造好的轮子真是好用。
首先我们先来看图中间的这个——Scrapy Engine(引擎),显而易见这个组件就是连接其他组件的一个中转站,主要作用就是负责其他组件之间的通讯的,也就是说其他组件之间相互通信必须要经过它。作用和移动、电信这些运营商差不多,平时打电话我们感觉上是直接打给对方的,实际上我们的通话是经过了这些运营商的设备的。但是知不知道这些设备都不影响我们打电话,这里也是一样,忽视掉Scrapy Engine也不会影响我们对这个框架的初步理解。
然后我们再来看Downloader(下载器),其实从它的名字我们就知道它是做什么的了。它的原理和迅雷这些下载器差不多,给它个下载地址,它就帮你把东西下载下来。平时我们下载的东西都是保存在硬盘的,这里Downloader下载好之后是交个Spider组件做进一步处理,具体我们后面会讲到。在说这个下载地址,平时我们是点击一个下载地址,然后浏览器自动跳转到迅雷,而这里是Scheduler(调度器)组件自动把下载地址给到Downloader,让它帮忙下载。
假设现在东西下好了,然后下好的网页交给了Spider(爬虫)组件来处理。爬虫捕捉到猎物后一般会做什么?当然是把它吃掉啊:)这里Spider同样如此,现在让我们看看它都吃了什么?首先要吃肉,哈哈,爬虫是怎么吃的肉?当然不是用啃的了,而是分泌一种液体把猎物分解,然后吸食(有点恐怖啊)。这里Spider的原理类似,它是用正则表达式或Xpath等等这种类型的语言把网页中我们需要的内容给提取出来,然后保存为Item这种数据结构,之后Item被送到Item Pipeline(管道)做进一步的后期处理——详细分析、过滤、存储等。除了我们需要的数据信息,Spider还会查找网页中出现的新的URL地址,然后把地址交给Scheduler组件,然它来协调Downloader的工作。
之后的工作就是一直重复上述过程直到把你需要的网页都爬一遍了。
某位召唤师峡谷的名人说过——欢乐的时光总是短暂的,又到了说再见的时候。整篇下来,各位读者是不是发现Scrapy框架也不是很难,甚至有点有趣呢O(∩_∩)O。