近期项目需要,要对一个动态加载的网站进行爬虫。而且由于对于性能要求较高,且需要数据持久化,因此采用现有较或的爬虫框架Scrapy。
Scrapy最早是在Python2下完成。由于现在Python3的发展,Scrapy对于Python3已经有了非常好的支持。目前2.7和3.4或以上的python版本都可以支持Scrapy。本次先安装Scrapy
一.安装Virtualenv(非必须,但建议):
scarpy官网提供了各种版本的安装方法,在此讲述mac版本的:
由于传统pip安装下,安装的python模块都会放在一个系统Library之中,这样如果同一模块在不同项目中需求的版本不同的话,就会产生冲突。因此virtualenv应用而生。他是一个python的虚拟环境。激活他之后,系统默认python模块的地址会发生相应变化,因此在给环境下安装的模块,不会影响到该环境之外,也就是产生了一个隔离沙箱。
MacOs下可以使用homebrew安装virtualenv:
$:brew install virtualenv
安装完成之后运行 $: virtualenv --version查看是否安装成功
安装成功之后可以开始创建一个环境,例如叫ScrapyEnv(专门用来Scrapy爬虫的环境)
$:virtualenv ScrapyEnv
然后激活沙箱:
$:source ScrapyEnv/bin/activate
可以看到在命令行前面会呈现如下:
这样证明已经激活了该环境,之后使用
$:deactivate
命令来退出此环境
二.安装Scrapy所需要依赖
需要先安装Scrapy所需依赖。对于Python3+来说,除了twisted模块之外,其他四项在运行pip install Scrapy时候都会自动安装。因此我们需要先安装twisted模块,否则会导致Scrapy安装失败。我们使用官网下载,自行安装twisted。
twisted下载地址:https://pypi.org/project/Twisted/#files
Window版本,可以现在twisted官网下载响应的whl文件,然后在pip安装wheel模块之后,运行
$:pip install ./(the source of the whl file you just download)
即可安装。
MacOs版本,需要下载源码版本,然后cd进入该文件夹(别忘了,在激活virtualenv之后在进入),运行python setup.py install。如果其中报错,就按照提示安装相应的模块即可。
三.安装Scrapy
由于Scrapy需要使用C lang 的编译器和development headers(官网用词,不知含义),在mac系统下,以上是有xcode提供,因此先安装xcode命令行工具:
$:xcode-select --install
以来安装完成之后,即可运行pip install scrapy,运行完成之后,运行
$:Scrapy startproject yourProject 进行创建。可以看到,在该目录下产生了一个文件夹。
四.Scrapy项目结构
crawlServer为我创建的project。
其中:
1、spiders文件夹:爬虫文件主目录
2、init.py:将改文件夹变为一个python模块
3、items.py:定义所需要爬虫的项目
4、middlewares.py:爬虫中间件
5、pipelines.py:管道文件
6、settings.py:设置文件