爬虫框架Scrapy

(用于个人学习,不喜勿喷)

安装

scrapy可以运行在python2.7、python3.3或者是更高的版本上;如果你用的是Anaconda(Anaconda下载)或者Minconda,你可以从conda-forge进行安装,可以使用下面的命令:

conda install -c conda-forge scrapy

如果你已经安装了python包管理工具PyPI,你也可以使用下面命令进行安装:

pip install Scrapy

值得注意的是,如果你使用的是pip安装,你需要解决相应的包依赖(解决依赖一般会让你怀疑人生、怀疑scrapy,建议还是用Anaconda安装,少年!)

这里的话,为了避免你安装的scrapy依赖包和原先你安装的其他python包有冲突,官方强烈建议你使用Virtualenv进行scrapy安装;

scrapy依赖的一些包:

lxml:一种高效的XML和HTML解析器,

PARSEL:一个HTML / XML数据提取库,基于上面的lxml,

w3lib:一种处理URL和网页编码多功能辅助

twisted,:一个异步网络框架

cryptography and pyOpenSSL,处理各种网络级安全需求

以上包需要的最低版本:

Twisted 14.0

lxml 3.4

pyOpenSSL 0.14

win7安装scrapy

在win7下的安装,这里的话并不推荐大家用python+pip安装,推荐使用Anaconda进行安装,为什么呢?因为如果你选择前者,填坑的过程可能会让你绝望,说不定会让你砸键盘、内分泌失调,所以强烈建议用Anaconda!不信的话大家可以试试!

软件环境:

win7(64位)

Anaconda3-5.0.1-Windows-x86_64(点击下载)

一、安装Anaconda

这里的话简单介绍一下anaconda的下载,下载地址为:https://www.anaconda.com/download/

如果官网无法打开,请移步这里:下载Anaconda

里面有不同的平台,不同的版本,根据您的平台进行下载即可!这里的话建议大家下载Anaconda全包,而不是Miniconda,因为后者虽然小巧,但会出现一些问题,如果你怕填坑就请下载Anaconda,500M左右,这里再说一点,python是不用安装的,当然装了也没关系!下载完成之后开始安装:

点击下一步

点击:I Agree(同意)

选择安装目录,然后Next,这里尽量不要选择带空格的目录

这一步一定两个都勾起了,上面是表示加入环境变量,勾了后期就不用设了,省得麻烦,下面是默认安装python3.6为默认的python解释器,勾选之后点击:Install,进行安装!安装过程有点缓慢,请大家耐心等待哈!

ok,大功告成,点击下一步

点击完成(Finish),那就安装完成了,接下来我们通过Anaconda安装scrapy

二、安装scrapy

点击开始菜单中的 Anaconda Navigator,启动Anaconda,稍等片刻,正在启动

启动后点击左侧:Environments

然后选择not install 然后在输入框中输入scrapy

下面就出现了scrapy包,点击选中scrapy,然后点击下面Apply,进行相应安装

接下来会跳出scrapy的包依赖,选择Apply,即可

稍等片刻,即可安装完成,基本整个过程是0出错,非常顺畅,安装完成后在命令行输入:scrapy,进行测试,如果出现以下显示,恭喜你,scrapy已经成功安装!

看视频教程:《【视频】scrapy安装视频:win7+Anaconda安装scrapy1.4》

linux centos7安装scrapy

本scrapy中文教程主要介绍,centos7 linux下scrapy的安装,python版本是2.7!上面我们已经介绍了如何安装centos linux,如果还木有安装好centos,请移步:《scrapy centos7 linux安装(一):centos安装》 安装好之后,我们来看如何在centos7下面安装scrapy。这里有一点特殊的地方要说下,相对于Windows,centos7自带python2.7,也就是说我们并不需要再安装python了,当然如果你想使用python3.6,请看另一篇文章:《centos7 linux安装scrapy(三):python3.6安装scrapy1.4》!接下来我们看如何在centos7 下python2.7安装scrapy!

先提一下,linux的一些命令,比如登录、cd、yum……这些前戏就不多说了,不清楚的大家不清楚的去百度一下,这里我直接进入正题了!在linux下面我们就用pip安装,我们先在linux命令行输入:

pip install scrapy

试一下,看能不能安装!结果:

[root@localhost ~]# pip install scrapy

-bash: pip: 未找到命令

可以看到,没有pip命令,那我们需要先安装pip:

yum -y install epel-release

输入以上命令,然后当出现下图时,说明安装完成(一半):

接着再输入一下命令:

yum install python-pip

里面我们需要输入[y/d/n],我们一路输入:y

当出现:完毕!字样,说明pip安装完成!接下来我们安装scrapy,用的命令就是我们狠熟悉的pip命令了,如下:

pip install scrapy

当我们满怀欢喜安装的时候,发现:

Command "/usr/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-L1Q1wb/Twisted/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-QWsI2y-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-L1Q1wb/Twisted/

You are using pip version 8.1.2, however version 9.0.1 is available.

You should consider upgrading via the 'pip install --upgrade pip' command.


神马情况,好像是告诉我们需要使用:

pip install --upgrade pip

更新pip版本,那我们就试试!

好了,更新完成了,再试试pip install scrapy看还会不会出错!果然,哈哈,又出错:

error: command 'gcc' failed with exit status 1


Command "/usr/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-S4duRv/Twisted/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-tAiOQb-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-S4duRv/Twisted/


红色、错误、error一点都不可怕,可怕的是不敢把错误踩在脚下,我们继续解决错误,大家要学会看提示,也就是上面error后面的或是红色的提示,虽然是英文,但是都是一些常见的,慢慢多看就熟悉了,以后出现这样的错误还多,何不早早的试试?好,我们来看上面提示大致意思是:没有‘gcc’,那我们先来装gcc吧,centos安装gcc灰常简单,命令如下:

yum install gcc

如果出现让你选择:[y/d/n] 不要犹豫,一路的:y ,然后就是等待,直到出现:完毕!字样说明gcc安装完成,如图:

安装完gcc后,我们再次输入:pip install scrapy试试,看能不能愉快的安装,呵呵,又有坑:

编译中断。

    error: command 'gcc' failed with exit status 1


    ----------------------------------------

Command "/usr/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-CRTnLK/Twisted/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-geKgvU-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-CRTnLK/Twisted/


网上查了一下,原来是差这么几个模块:libffi-devel 、 python-devel 、openssl-devel,一起安装一下,命令行输入:

yum install gcc libffi-devel python-devel openssl-devel -y

安装完成之后,再次输入:pip install scrapy,你会发现奇迹就在眼前,scrapy成功安装,输入:scrapy,当出现如下输出,说明安装完成

其实这就是一个填坑的过程,之所以出现这些问题,是我们使用centos mini(最小安装),导致许多包没有,所以需要我们手动安装一下这些包,其实用到的命令就这么几个:

yum -y install epel-release

yum install python-pip -y

pip install --upgrade pip

yum install gcc -y

yum install gcc libffi-devel python-devel openssl-devel -y

pip install scrapy

用: import scrapy  查看是否安装成功

注意:其实python2 与 python3 都可以 直接:pip install scrapy安装的

Scrapy创建项目之前

(1)进入 Python 的主目录,如cd /usr/local/python3.6/bin,查找 scrapy 项 

(2)检查 cd /usr/bin/ | ll | grep scrapy,查看是否存在 

(3)不存在则执行 ln -s /usr/local/bin/scrapy /usr/bin/scrapy 

(4)回到shell,执行 scrapy version,成功

你可能感兴趣的:(爬虫框架Scrapy)