安装Scrapy

Scrapy在Python 2.7和Python 3.4或更高版本运行,或者在CPython(默认Python实现)和PyPy(从PyPy 5.9开始)下运行。
如果您使用的是Anaconda或Miniconda,您可以从conda-forge通道安装该软件包,该软件包含适用于Linux,Windows和OS X的最新软件包。
要使用conda安装Scrapy,请运行:

conda install -c conda-forge scrapy

或者,如果您已经熟悉Python包的安装,则可以使用以下命令从PyPI安装Scrapy及其依赖项:

pip install Scrapy

请注意,有时这可能需要根据您的操作系统解决某些Scrapy依赖项的编译问题,因此请务必查看特定于平台的安装说明。
我们强烈建议您在专用的virtualenv中安装Scrapy,以避免与系统软件包冲突。
有关更详细和平台细节的说明,请继续阅读。

值得了解的事情

Scrapy是用纯Python编写的,取决于一些关键的Python包(以及其他):

  • lxml,一个高效的XML和HTML解析器
  • parsel,一个在lxml之上编写的HTML / XML数据提取库,
  • w3lib,一个用于处理URL和网页编码的多用途帮助程序
  • twisted,一个异步网络框架
  • cryptography和pyOpenSSL,用于处理各种网络级安全需求
    Scrapy经过测试的最小版本是:
  • Twisted 14.0
  • lxml 3.4
  • pyOpenSSL 0.14
    Scrapy可能适用于这些软件包的旧版本,但不保证它会继续工作,因为它没有针对它们进行测试。

其中一些软件包本身依赖于非Python软件包,可能需要额外的安装步骤,具体取决于您的平台。 请查看下面的平台特定指南。
如果与这些依赖关系有任何问题,请参阅各自的安装说明:

TL; DR:我们建议在所有平台上的虚拟环境中安装Scrapy。
Python包可以全局安装(a.k.a系统范围),也可以安装在用户空间中。 我们不建议安装scrapy系统。
相反,我们建议您在所谓的“虚拟环境”(virtualenv)中安装scrapy。 Virtualenvs允许您不与已安装的Python系统软件包冲突(这可能会破坏您的一些系统工具和脚本),并且仍然通常使用pip安装软件包(没有sudo等)。
要开始使用虚拟环境,请参阅virtualenv安装说明。 要全局安装它(全局安装它实际上有帮助),它应该是运行的问题:

$ [sudo] pip install virtualenv

查看本用户指南,了解如何创建virtualenv。
⚠️注意
如果你使用Linux或OS X,virtualenvwrapper是一个创建virtualenvs的便利工具。
一旦你创建了virtualenv,就可以使用pip在其中安装scrapy,就像任何其他Python包一样。 (有关您可能需要事先安装的非Python依赖项,请参阅下面的特定于平台的指南)。
可以创建Python virtualenvs以默认使用Python 2,或默认使用Python 3。

  • 如果你想用Python 3安装scrapy,请在Python 3 virtualenv中安装scrapy。
  • 如果你想用Python 2安装scrapy,请在Python 2 virtualenv中安装scrapy。

平台特定安装说明

Windows

虽然可以使用pip在Windows上安装Scrapy,但我们建议您安装Anaconda或Miniconda并使用conda-forge通道中的软件包,这样可以避免大多数安装问题。
安装Anaconda或Miniconda后,安装Scrapy:

conda install -c conda-forge scrapy

Ubuntu 14.04 或者之上版本

Scrapy目前正在使用最新版本的lxml,twisted和pyOpenSSL进行测试,并且与最近的Ubuntu发行版兼容。 但它也应该支持旧版本的Ubuntu,比如Ubuntu 14.04,尽管可能存在TLS连接问题。
不要使用Ubuntu提供的python-scrapy包,它们通常太旧而且速度慢,无法赶上最新的Scrapy。
要在Ubuntu(或基于Ubuntu)系统上安装scrapy,您需要安装这些依赖项:

sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
  • lxml需要python-dev, zlib1g-dev, libxml2-dev 和 libxslt1-dev
  • cryptography需要libssl-dev 和 libffi-dev
    如果你想在Python 3上安装scrapy,你还需要Python 3开发头:

在virtualenv中,您可以在此之后使用pip安装Scrapy:

pip install scrapy

⚠️注意
可以使用相同的非Python依赖项在Debian Jessie(8.0)及更高版本中安装Scrapy。

Mac OS X.

构建Scrapy的依赖项需要存在C编译器和开发头。 在OS X上,这通常由Apple的Xcode开发工具提供。 要安装Xcode命令行工具,请打开终端窗口并运行:

xcode-select --install

有一个已知的问题阻止了pip更新系统包。 必须解决这个问题才能成功安装Scrapy及其依赖项。 以下是一些建议的解决方案:

  • (推荐)不要使用系统python,安装一个不与系统其他部分冲突的新版本。 以下是使用自制软件包管理器的方法:

    echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.bashrc

    • 重新加载.bashrc以确保发生了更改:

    source ~/.bashrc

    • 安装python

    brew install python

    • 最新版本的python与它们捆绑在一起,所以你不需要单独安装它。 如果不是这样,请升级python:

    brew update; brew upgrade python

  • (可选)在隔离的python环境中安装Scrapy。

此方法是上述OS X问题的解决方法,但它是管理依赖关系的总体良好实践,可以补充第一种方法。virtualenv是一个可以用来在python中创建虚拟环境的工具。 我们建议您阅读http://docs.python-guide.org/en/latest/dev/virtualenvs/ 等教程,以便开始使用。

在完成任何这些变通办法之后,您应该能够安装Scrapy:

pip install Scrapy

PyPy

我们建议使用最新的PyPy版本。 测试的版本是5.9.0。 对于PyPy3,仅测试了Linux安装。

大多数scrapy依赖类似物现在都有CPython的二进制轮,但不适用于PyPy。 这意味着将在安装期间构建这些依赖项。 在OS X上,您可能会遇到构建加密依赖关系的问题,此处描述了解决此问题的方法,即brew install openssl然后导出此命令建议的标志(仅在安装scrapy时需要)。 除了安装构建依赖项之外,在Linux上安装没有特殊问题。 在Windows上使用PyPy安装scrapy未经过测试。

您可以通过运行scrapy bench来检查scrapy是否已正确安装。 如果此命令产生类似TypeError的错误:...得到2个意外的关键字参数,这意味着setuptools无法获取一个特定于PyPy的依赖项。 要解决此问题,请运行pip install'PyPyDispatcher> = 2.1.0'。

标签: scrapy

添加新评论