大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语—
不温不火
,本意是希望自己性情温和
。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客主页:https://buwenbuhuo.blog.csdn.net/
官网地址:https://scrapy.org/
本文主要讲的是简单一文学会如何安装Scrapy并创建项目
。
声明:官方文档有很详细的安装过程,本博主只是使其能够令读者能够更好的理解。
官方文档地址
: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
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使用目录路径作为脚本运行模块:
python3 -m venv tutorial-env
tutorial-env
如果该目录不存在,它将创建一个目录,并在其中创建包含Python解释器,标准库和各种支持文件的副本的目录。
虚拟环境的通用目录位置是.venv。该名称通常使目录隐藏在您的外壳中,因此不会干扰目录,同时为其提供一个解释该目录存在原因的名称。它还可以防止与.env
某些工具支持的环境变量定义文件发生冲突。
创建虚拟环境后,可以激活它。
在Windows上,运行:
tutorial-env\Scripts\activate.bat
在Unix或MacOS上,运行:
source tutorial-env/bin/activate
在创建虚拟环境后,你就可以和pip其他任何Python软件包一样,将Scrapy安装在其中。
二. Scrapy的安装过程
上述是属于理论解释部分,此部分则为最重要的安装部分。由于博主本人的电脑为windows系统,所以演示也是在windows系统下进行安装。Linux的安装方法,博主在时间空闲的情况下,可能会进行更新操作。
2.1 通过cmd命令行安装Scrapy
由于博主已经安装过了,所以会出现上述的情况,如果没有安装,是需要等待一段时间的。
pip install scrapy
2.2 通过集成开发工具Pycharm安装Scrapy
通过此方式安装Scrapy就很傻瓜式操作了,话不多说,看我操作:
具体过程:File -> Settings -> project interpreter -> + -> 搜索:Scrapy -> install package
三. Scrapy的创建过程
3.1 cmd命令行下创建Scrapy
# 命令如下
# 进入想要存放的目录
F:\>cd Python项目
# 创建存放文件夹
F:\Python项目>mkdir ScrapyTest
# 进入文件夹
F:\Python项目>cd ScrapyTest
# 创建项目
F:\Python项目\ScrapyTest>scrapy startproject bd
# 进入所创建项目的文件夹
F:\Python项目\ScrapyTest>cd bd
#
F:\Python项目\ScrapyTest\baidu>scrapy genspider baidu "baidu.com"
下面为具体操作过程:
3.2 使用Pycharm创建Scrapy
使用Pycharm的命令窗口创建Scrapy,在这时候就可以看到上文所提到的虚拟环境(venv
)
下面为具体操作过程:
美好的日子总是短暂的,虽然还想继续与大家畅谈,但是本篇博文到此已经结束了,如果还嫌不够过瘾,不用担心,我们下篇见!
好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请“点赞” “评论”“收藏”
一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注
我哦!
转载:https://blog.csdn.net/qq_16146103/article/details/108674517