声明:官方文档有很详细的安装过程,本博主只是使其能够令读者能够更好的理解。
官方文档地址
:https://docs.scrapy.org/en/latest/intro/install.html#intro-install
官方GitHub地址
:https://github.com/scrapy/scrapy/blob/2.3/docs/intro/install.rst
Scrapy需要使用Python 3.5.2 ,或者CPython实现(默认)或PyPy 5.9 实现。
小知识(如果懂此部分可自行略过此部分,如果使新手可以适当了解): ① 什么使Cpython?
- CPython:这是Python的官方版本,使用C语言实现,使用最为广泛,新的语言特性一般也最先出现在这里。
- CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
- 同时CPython是一种被广泛使用的python解释器,类似的解释器还有pypy,JPython等等
② PyPy是用Python实现的Python解释器。
一. 为什么推荐Anaconda或Miniconda?[此处为官方文档的解释,但是博主不建议使用此方式]
如果你使用的是Anaconda
或Miniconda
,则可以从conda- forge渠道安装该软件包,该渠道包含适用于Linux,Windows和macOS的最新软件包。
- 如果要使用
conda
安装Scrapy,请运行:
conda install -c conda-forge scrapy
- 如果您已经熟悉Python软件包的安装,则可以使用以下方法从PyPI安装Scrapy及其依赖项
pip install Scrapy
在此需要注意的是,在有些时候,可能需要解决某些Scrapy依赖项的编译问题,这些具体取决与每个人的操作系统。因此在安装Scrapy时,请务必查看特定的平台的安装说明。
平台特定的安装说明(Platform specific installation notes)
1.1 Windows
在Windows
中尽管可以使用pip安装Scrapy,但是仍然建议安装Anaconda或Miniconda
并使用conda - forge
渠道中的软件包 ,这将避免大多数安装问题。
在安装安装Anaconda或Miniconda后,请使用以下方法安装Scrapy
代码语言:javascript复制conda install -c conda-forge scrapy
1.2 Ubuntu(14.04或更高版本)
目前,Scrapy
已使用最新版本的lxml
,twisted
和pyOpenSSL
进行了测试,并且与最新的Ubuntu发行版兼容。尽管在Ubuntu 14.04中存在TLS连接的潜在问题,但是它也应该支持Ubuntu的较早版本。
不要使用Ubuntu
提供的python-scrapy
软件包,它们通常版本太旧且下载太慢,无法赶上最新的Scrapy。
- 如果要在Ubuntu(或基于Ubuntu的)系统上安装Scrapy,您需要安装以下依赖项:
sudo apt-get install python3 python3-dev python3-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
python3-dev
,zlib1g-dev
,libxml2-dev
和libxslt1-dev
是lxml
所需要的libssl-dev
和libffi-dev
是cryptography
所必须的- 在
virtualenv
内部,你可以pip
安装Scrapy
pip install scrapy
注意: 可以使用相同的
非Python
依赖项在Debian Jessie(8.0)
及更高版本中安装Scrapy
。
1.3 为什么推荐使用虚拟环境?
TL; DR
:建议在所有平台上的虚拟环境中安装Scrapy。
Python软件包可以全局安装(也称为系统范围),也可以安装在用户空间中。但是并不建议在整个系统中安装Scrapy。
在所谓的“虚拟环境”(venv)中安装Scrapy 。虚拟环境能够尽可能减少与已经安装的Python系统软件包不冲突(但这可能会破坏某些系统工具和脚本),并且仍然可以正常安装软件包pip(不带sudo类似的东西)。
- 1. 虚拟环境的简单介绍
Python应用程序通常会使用标准库中未包含的软件包和模块。应用程序有时会需要特定版本的库,因为应用程序可能需要修复特定的错误,或者使用库接口的过时版本来编写应用程序。
这意味着一个Python安装可能无法满足每个应用程序的要求。
如果应用程序A需要特定模块的版本1.0,而应用程序B需要版本2.0,则这些要求存在冲突,并且安装版本1.0或2.0将使一个应用程序无法运行。
解决此问题的方法是创建一个虚拟环境,这是一个独立的目录树,其中包含针对特定版本的Python的Python安装以及许多其他软件包。
然后,不同的应用程序可以使用不同的虚拟环境。为了解决需求冲突的早期示例,应用程序A可以拥有自己的虚拟环境,安装了1.0版,而应用程序B拥有另一个虚拟环境,具有2.0版。如果应用程序B需要将库升级到版本3.0,则不会影响应用程序A的环境。
- 2. 创建虚拟环境(venv)
用于创建和管理虚拟环境的模块称为 venv。 venv通常会安装可用的最新版本的Python。如果您的系统上有多个Python版本,则可以通过运行python3或所需的任意版本来选择特定的Python版本。
要创建虚拟环境,请确定要放置虚拟目录的位置,然后venv使用目录路径作为脚本运行模块:
代码语言:javascript复制python3 -m venv tutorial-env
tutorial-env
如果该目录不存在,它将创建一个目录,并在其中创建包含Python解释器,标准库和各种支持文件的副本的目录。
虚拟环境的通用目录位置是.venv。该名称通常使目录隐藏在您的外壳中,因此不会干扰目录,同时为其提供一个解释该目录存在原因的名称。它还可以防止与.env
某些工具支持的环境变量定义文件发生冲突。
创建虚拟环境后,可以激活它。
在Windows上,运行:
代码语言:javascript复制tutorial-envScriptsactivate.bat
在Unix或MacOS上,运行:
代码语言:javascript复制source tutorial-env/bin/activate
在创建虚拟环境后,你就可以和pip其他任何Python软件包一样,将Scrapy安装在其中。
二. Scrapy的安装过程
上述是属于理论解释部分,此部分则为最重要的安装部分。由于博主本人的电脑为windows系统,所以演示也是在windows系统下进行安装。Linux的安装方法,博主在时间空闲的情况下,可能会进行更新操作。
2.1 通过cmd命令行安装Scrapy
由于博主已经安装过了,所以会出现上述的情况,如果没有安装,是需要等待一段时间的。
代码语言:javascript复制pip install scrapy
2.2 通过集成开发工具Pycharm安装Scrapy
通过此方式安装Scrapy就很傻瓜式操作了,话不多说,看我操作:
代码语言:javascript复制具体过程:File -> Settings -> project interpreter -> -> 搜索:Scrapy -> install package
三. Scrapy的创建过程
3.1 cmd命令行下创建Scrapy
代码语言:javascript复制# 命令如下
# 进入想要存放的目录
F:>cd Python项目
# 创建存放文件夹
F:Python项目>mkdir ScrapyTest
# 进入文件夹
F:Python项目>cd ScrapyTest
# 创建项目
F:Python项目ScrapyTest>scrapy startproject bd
# 进入所创建项目的文件夹
F:Python项目ScrapyTest>cd bd
#
F:Python项目ScrapyTestbaidu>scrapy genspider baidu "baidu.com"
下面为具体操作过程:
3.2 使用Pycharm创建Scrapy
使用Pycharm的命令窗口创建Scrapy,在这时候就可以看到上文所提到的虚拟环境(venv
)
下面为具体操作过程:
美好的日子总是短暂的,虽然还想继续与大家畅谈,但是本篇博文到此已经结束了,如果还嫌不够过瘾,不用担心,我们下篇见!