炫意html5
最早CSS3和HTML5移动技术网站之一

Scrapy – 安装指南

支持的Python版本¶

Scrapy需要python3.6+,CPython实现(默认)或pypy7.2.0+实现(请参见 Alternate Implementations

安装 Scrapy¶

如果你在用 Anaconda 或 Miniconda ,您可以从 conda-forge 频道,它有针对Linux、Windows和macOS的最新软件包。

使用 conda 安装 Scrapy,运行:

conda install -c conda-forge scrapy

或者,如果您已经熟悉了python包的安装,那么可以从pypi安装scrappy及其依赖项,方法是:

pip install Scrapy

请注意,有时这可能需要根据操作系统解决一些零碎依赖项的编译问题,因此请确保检查 平台特定安装说明 .

我们强烈建议您在以下位置安装Scrapy:ref:一个专用的virtualenv <intro-using-virtualenv>,以避免与您的系统包冲突。

有关更详细和平台特定的说明以及故障排除信息,请继续阅读。

很好知道的事情¶

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软件包,这些软件包可能需要依赖于您的平台的其他安装步骤。请检查 platform-specific guides below .

如果与这些依赖项相关的任何问题,请参阅它们各自的安装说明:

  • lxml installation

  • cryptography installation

使用虚拟环境(推荐)¶

TL;DR: 我们建议在所有平台上的虚拟环境中安装scrapy。

Python包可以全局安装(也称为系统范围),也可以安装在用户空间中。我们不建议在系统范围内安装Scrapy。

相反,我们建议您在所谓的“虚拟环境”中安装Scrapy (venv ). 虚拟环境允许您不与已经安装的Python系统包发生冲突(这可能会破坏您的一些系统工具和脚本),并且仍然可以使用 pip (没有) sudo 诸如此类。

Virtual Environments and Packages 关于如何创建虚拟环境。

一旦您创建了一个虚拟环境,就可以使用 pip 就像其他的python包一样。(见 platform-specific guides 下面是您可能需要预先安装的非python依赖项)。

平台特定安装说明¶

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的旧版本,比如Ubuntu14.04,尽管存在与TLS连接相关的潜在问题。

Don’t 使用 python-scrapy Ubuntu提供的软件包,它们通常太旧,速度太慢,赶不上最新的垃圾。

要在Ubuntu(或基于Ubuntu的)系统上安装scray,需要安装以下依赖项:

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 and libxslt1-dev
    are required for lxml

  • libssl-dev and libffi-dev are required for cryptography

在a:ref: ‘ virtualenv < introduction – use -virtualenv> ‘内部,您可以在后面安装带有’ ‘ pip ‘ ‘的Scrapy:

pip install scrapy

注解

相同的非python依赖项可用于在debian jessie(8.0)及更高版本中安装scrapy。

macOS¶

构建Scrapy的依赖项需要有一个C编译器和开发头文件。在macOS上,这通常是由苹果的Xcode开发工具提供的。要安装Xcode命令行工具,请打开终端窗口并运行:

xcode-select --install

有一个“已知问题<https: github.com=”” pypa=”” pip=”” issues=”” 2468=””>”_阻止“’ pip ‘”更新系统包。</https:>要成功安装Scrapy及其依赖项,必须解决这个问题。以下是一些建议的解决方案:

  • (推荐) Don’t 使用系统python,安装一个新的、更新的版本,它不会与系统的其他部分冲突。以下是如何使用 homebrew 包管理器:

    • 安装 homebrew 遵循https://brew.sh中的说明/

    • 更新你的 PATH 变量,说明应在系统包之前使用自制包(更改 .bashrc.zshrc 如果你在使用 zsh 作为默认外壳)::

      echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.bashrc
      
    • 重新加载“.bashrc“以确保发生了变化:

      source ~/.bashrc
      
    • 安装python::

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

      brew update; brew upgrade python
      
  • (可选) Install Scrapy inside a Python virtual environment .

此方法是解决上述macOS问题的一种解决方法,但它是管理依赖关系的一种总体良好实践,可以补充第一种方法。

在任何这些解决方法之后,您都应该能够安装scrapy::

pip install Scrapy

PyPy¶

我们建议使用最新的Pypy版本。测试版本为5.9.0。对于pypy3,只测试了Linux安装。

大多数垃圾依赖现在都有CPython的二进制轮子,但PyPy没有。这意味着这些依赖项将在安装期间生成。在macOS上,您可能会面临构建加密依赖关系的问题,本文介绍了这个问题的解决方案 here ,就是 brew install openssl 然后导出此命令建议的标志(仅在安装scray时需要)。除了安装构建依赖项之外,在Linux上安装没有特殊问题。在Windows上用PyPy安装Scrapy没有经过测试。

运行以下命令可以检查scray是否正确安装 scrapy bench . 如果此命令给出错误,例如 TypeError: ... got 2 unexpected keyword arguments ,这意味着安装工具无法获取一个Pypy特定的依赖项。要解决此问题,请运行 pip install 'PyPyDispatcher>=2.1.0' .

故障排除¶

AttributeError::“module”对象没有属性“op u no u tlsv1 u 1”¶

安装或升级scrappy、twisted或pyopenssl之后,可能会得到以下跟踪的异常:

[…]
File "[…]/site-packages/twisted/protocols/tls.py", line 63, in <module>
from twisted.internet._sslverify import _setAcceptableProtocols
File "[…]/site-packages/twisted/internet/_sslverify.py", line 38, in <module>
TLSVersion.TLSv1_1: SSL.OP_NO_TLSv1_1,
AttributeError: 'module' object has no attribute 'OP_NO_TLSv1_1'

您得到这个异常的原因是您的系统或虚拟环境有一个您的Twisted版本不支持的pyopenssl版本。

要安装您的Twisted版本支持的pyopenssl版本,请使用 tls 额外选项:

pip install twisted[tls]

有关详细信息,请参阅 Issue #2473 .

支持的Python版本¶

Scrapy需要python3.6+,CPython实现(默认)或pypy7.2.0+实现(请参见 Alternate Implementations

安装 Scrapy¶

如果你在用 Anaconda 或 Miniconda ,您可以从 conda-forge 频道,它有针对Linux、Windows和macOS的最新软件包。

使用 conda 安装 Scrapy,运行:

conda install -c conda-forge scrapy

或者,如果您已经熟悉了python包的安装,那么可以从pypi安装scrappy及其依赖项,方法是:

pip install Scrapy

请注意,有时这可能需要根据操作系统解决一些零碎依赖项的编译问题,因此请确保检查 平台特定安装说明 .

我们强烈建议您在以下位置安装Scrapy:ref:一个专用的virtualenv <intro-using-virtualenv>,以避免与您的系统包冲突。

有关更详细和平台特定的说明以及故障排除信息,请继续阅读。

很好知道的事情¶

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软件包,这些软件包可能需要依赖于您的平台的其他安装步骤。请检查 platform-specific guides below .

如果与这些依赖项相关的任何问题,请参阅它们各自的安装说明:

  • lxml installation

  • cryptography installation

使用虚拟环境(推荐)¶

TL;DR: 我们建议在所有平台上的虚拟环境中安装scrapy。

Python包可以全局安装(也称为系统范围),也可以安装在用户空间中。我们不建议在系统范围内安装Scrapy。

相反,我们建议您在所谓的“虚拟环境”中安装Scrapy (venv ). 虚拟环境允许您不与已经安装的Python系统包发生冲突(这可能会破坏您的一些系统工具和脚本),并且仍然可以使用 pip (没有) sudo 诸如此类。

Virtual Environments and Packages 关于如何创建虚拟环境。

一旦您创建了一个虚拟环境,就可以使用 pip 就像其他的python包一样。(见 platform-specific guides 下面是您可能需要预先安装的非python依赖项)。

很好知道的事情¶

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软件包,这些软件包可能需要依赖于您的平台的其他安装步骤。请检查 platform-specific guides below .

如果与这些依赖项相关的任何问题,请参阅它们各自的安装说明:

  • lxml installation

  • cryptography installation

使用虚拟环境(推荐)¶

TL;DR: 我们建议在所有平台上的虚拟环境中安装scrapy。

Python包可以全局安装(也称为系统范围),也可以安装在用户空间中。我们不建议在系统范围内安装Scrapy。

相反,我们建议您在所谓的“虚拟环境”中安装Scrapy (venv ). 虚拟环境允许您不与已经安装的Python系统包发生冲突(这可能会破坏您的一些系统工具和脚本),并且仍然可以使用 pip (没有) sudo 诸如此类。

Virtual Environments and Packages 关于如何创建虚拟环境。

一旦您创建了一个虚拟环境,就可以使用 pip 就像其他的python包一样。(见 platform-specific guides 下面是您可能需要预先安装的非python依赖项)。

平台特定安装说明¶

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的旧版本,比如Ubuntu14.04,尽管存在与TLS连接相关的潜在问题。

Don’t 使用 python-scrapy Ubuntu提供的软件包,它们通常太旧,速度太慢,赶不上最新的垃圾。

要在Ubuntu(或基于Ubuntu的)系统上安装scray,需要安装以下依赖项:

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 and libxslt1-dev
    are required for lxml

  • libssl-dev and libffi-dev are required for cryptography

在a:ref: ‘ virtualenv < introduction – use -virtualenv> ‘内部,您可以在后面安装带有’ ‘ pip ‘ ‘的Scrapy:

pip install scrapy

注解

相同的非python依赖项可用于在debian jessie(8.0)及更高版本中安装scrapy。

macOS¶

构建Scrapy的依赖项需要有一个C编译器和开发头文件。在macOS上,这通常是由苹果的Xcode开发工具提供的。要安装Xcode命令行工具,请打开终端窗口并运行:

xcode-select --install

有一个“已知问题<https: github.com=”” pypa=”” pip=”” issues=”” 2468=””>”_阻止“’ pip ‘”更新系统包。</https:>要成功安装Scrapy及其依赖项,必须解决这个问题。以下是一些建议的解决方案:

  • (推荐) Don’t 使用系统python,安装一个新的、更新的版本,它不会与系统的其他部分冲突。以下是如何使用 homebrew 包管理器:

    • 安装 homebrew 遵循https://brew.sh中的说明/

    • 更新你的 PATH 变量,说明应在系统包之前使用自制包(更改 .bashrc.zshrc 如果你在使用 zsh 作为默认外壳)::

      echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.bashrc
      
    • 重新加载“.bashrc“以确保发生了变化:

      source ~/.bashrc
      
    • 安装python::

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

      brew update; brew upgrade python
      
  • (可选) Install Scrapy inside a Python virtual environment .

此方法是解决上述macOS问题的一种解决方法,但它是管理依赖关系的一种总体良好实践,可以补充第一种方法。

在任何这些解决方法之后,您都应该能够安装scrapy::

pip install Scrapy

PyPy¶

我们建议使用最新的Pypy版本。测试版本为5.9.0。对于pypy3,只测试了Linux安装。

大多数垃圾依赖现在都有CPython的二进制轮子,但PyPy没有。这意味着这些依赖项将在安装期间生成。在macOS上,您可能会面临构建加密依赖关系的问题,本文介绍了这个问题的解决方案 here ,就是 brew install openssl 然后导出此命令建议的标志(仅在安装scray时需要)。除了安装构建依赖项之外,在Linux上安装没有特殊问题。在Windows上用PyPy安装Scrapy没有经过测试。

运行以下命令可以检查scray是否正确安装 scrapy bench . 如果此命令给出错误,例如 TypeError: ... got 2 unexpected keyword arguments ,这意味着安装工具无法获取一个Pypy特定的依赖项。要解决此问题,请运行 pip install 'PyPyDispatcher>=2.1.0' .

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的旧版本,比如Ubuntu14.04,尽管存在与TLS连接相关的潜在问题。

Don’t 使用 python-scrapy Ubuntu提供的软件包,它们通常太旧,速度太慢,赶不上最新的垃圾。

要在Ubuntu(或基于Ubuntu的)系统上安装scray,需要安装以下依赖项:

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 and libxslt1-dev
    are required for lxml

  • libssl-dev and libffi-dev are required for cryptography

在a:ref: ‘ virtualenv < introduction – use -virtualenv> ‘内部,您可以在后面安装带有’ ‘ pip ‘ ‘的Scrapy:

pip install scrapy

注解

相同的非python依赖项可用于在debian jessie(8.0)及更高版本中安装scrapy。

macOS¶

构建Scrapy的依赖项需要有一个C编译器和开发头文件。在macOS上,这通常是由苹果的Xcode开发工具提供的。要安装Xcode命令行工具,请打开终端窗口并运行:

xcode-select --install

有一个“已知问题<https: github.com=”” pypa=”” pip=”” issues=”” 2468=””>”_阻止“’ pip ‘”更新系统包。</https:>要成功安装Scrapy及其依赖项,必须解决这个问题。以下是一些建议的解决方案:

  • (推荐) Don’t 使用系统python,安装一个新的、更新的版本,它不会与系统的其他部分冲突。以下是如何使用 homebrew 包管理器:

    • 安装 homebrew 遵循https://brew.sh中的说明/

    • 更新你的 PATH 变量,说明应在系统包之前使用自制包(更改 .bashrc.zshrc 如果你在使用 zsh 作为默认外壳)::

      echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.bashrc
      
    • 重新加载“.bashrc“以确保发生了变化:

      source ~/.bashrc
      
    • 安装python::

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

      brew update; brew upgrade python
      
  • (可选) Install Scrapy inside a Python virtual environment .

此方法是解决上述macOS问题的一种解决方法,但它是管理依赖关系的一种总体良好实践,可以补充第一种方法。

在任何这些解决方法之后,您都应该能够安装scrapy::

pip install Scrapy

PyPy¶

我们建议使用最新的Pypy版本。测试版本为5.9.0。对于pypy3,只测试了Linux安装。

大多数垃圾依赖现在都有CPython的二进制轮子,但PyPy没有。这意味着这些依赖项将在安装期间生成。在macOS上,您可能会面临构建加密依赖关系的问题,本文介绍了这个问题的解决方案 here ,就是 brew install openssl 然后导出此命令建议的标志(仅在安装scray时需要)。除了安装构建依赖项之外,在Linux上安装没有特殊问题。在Windows上用PyPy安装Scrapy没有经过测试。

运行以下命令可以检查scray是否正确安装 scrapy bench . 如果此命令给出错误,例如 TypeError: ... got 2 unexpected keyword arguments ,这意味着安装工具无法获取一个Pypy特定的依赖项。要解决此问题,请运行 pip install 'PyPyDispatcher>=2.1.0' .

故障排除¶

AttributeError::“module”对象没有属性“op u no u tlsv1 u 1”¶

安装或升级scrappy、twisted或pyopenssl之后,可能会得到以下跟踪的异常:

[…]
File "[…]/site-packages/twisted/protocols/tls.py", line 63, in <module>
from twisted.internet._sslverify import _setAcceptableProtocols
File "[…]/site-packages/twisted/internet/_sslverify.py", line 38, in <module>
TLSVersion.TLSv1_1: SSL.OP_NO_TLSv1_1,
AttributeError: 'module' object has no attribute 'OP_NO_TLSv1_1'

您得到这个异常的原因是您的系统或虚拟环境有一个您的Twisted版本不支持的pyopenssl版本。

要安装您的Twisted版本支持的pyopenssl版本,请使用 tls 额外选项:

pip install twisted[tls]

有关详细信息,请参阅 Issue #2473 .

AttributeError::“module”对象没有属性“op u no u tlsv1 u 1”¶

安装或升级scrappy、twisted或pyopenssl之后,可能会得到以下跟踪的异常:

[…]
File "[…]/site-packages/twisted/protocols/tls.py", line 63, in <module>
from twisted.internet._sslverify import _setAcceptableProtocols
File "[…]/site-packages/twisted/internet/_sslverify.py", line 38, in <module>
TLSVersion.TLSv1_1: SSL.OP_NO_TLSv1_1,
AttributeError: 'module' object has no attribute 'OP_NO_TLSv1_1'

您得到这个异常的原因是您的系统或虚拟环境有一个您的Twisted版本不支持的pyopenssl版本。

要安装您的Twisted版本支持的pyopenssl版本,请使用 tls 额外选项:

pip install twisted[tls]

有关详细信息,请参阅 Issue #2473 .

炫意HTML5 » Scrapy – 安装指南

Java基础教程Android基础教程