前言
Scrapy是Python语言下一个十分流行的爬虫框架,本文不对Scrapy本身做详细介绍。有关Scrapy的安装可以参考官网的安装指南,不过本人更推荐使用Anaconda,Anaconda集成了Python和一系列常用的的Python库,当然也包括Scrapy。安装好Anaconda,基本上就可以直接使用Scrapy了,免去了一些麻烦的依赖的安装。不过事情并非总是一帆风顺,我们依然有可能遇到一些错误。本人首次使用Scrapy的时候,在操作无误的情况下还是遇到了一个和dll文件相关的错误,问题倒不大,直接把具体的错误信息往google上一粘,很快就找到了解决办法。用google!用google!用google!重要的事情说三遍。
Scrapy是一个通用的爬虫框架,可以爬取多种形式的数据,不限于本文所讲的图片下载。关于Scrapy的工作流程、基本概念和简单例子可以参考官网的入门教程。对于网页上图片的爬取来说,Scrapy专门提供了一个item pipeline,叫做图片管道。有关图片管道的使用,官网上在下载项目图片部分里也有所介绍,而本文旨在结合一个具体的例子更清晰地说明如何使用Scrapy的图片管道爬取一个网页上的图片。
大概流程
使用Scrapy爬数据的流程大概包括如下4步:
- 创建一个scrapy项目。
- 定义要提取的Item。
- 编写爬取网站的爬虫(spider)。
- 编写Item pipeline来处理提取到的Item。
下面,我将详细介绍如何通过以上4步来完成对图片的爬取。
创建Scrapy项目
本人是在Windows7环境下进行的一系列操作,使用Anaconda自带的Scrapy,而且安装Anaconda时也允许其将相关路径加到了环境变量里,对于其他情况本人并未遇到过,这里也不做进一步的探讨。先提一点题外话,打开cmd,输入scrapy version命令可以查看当前使用的scrapy的版本情况,注意是version而不是常见的–version,截图如下:
使用Scrapy创建一个项目是要从命令行敲命令完成的,可以打开cmd,再cd到一个我们指定的路径下,也可以直接在一个指定的空文件夹上按住shift键再右击鼠标,然后在右键菜单里选择“在此处打开命令行窗口”。无论怎样,到了指定路径后,键入命令scrapy startproject image(其中,image是我们项目的名称),回车就可以创建项目了,如果成功的话,会出现大概如下图所示情况: