爬虫框架Scrapy入门与实践-环境搭建及图解(1)

安装指南

图解Scrapy框架

爬虫框架Scrapy入门与实践-环境搭建及图解(1)

支持的 Python 版本
Scrapy 需要 Python 3.6+,CPython 实现(默认)或 PyPy 7.2.0+ 实现(参见:ref: python:implementations)。

安装 Scrapy
如果您使用的是Anaconda或Miniconda,则可以从conda- forge频道安装该软件包,该频道具有适用于 Linux、Windows 和 macOS 的最新软件包。

要使用 安装 Scrapy conda,请运行:

conda install -c conda-forge scrapy

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

pip 安装 Scrapy
我们强烈建议您在:ref: a &#x4E13;&#x7528; virtualenv <intro-using-virtualenv></intro-using-virtualenv> 中安装 Scrapy ,以避免与您的系统包冲突。

请注意,有时这可能需要根据您的操作系统解决某些 Scrapy 依赖项的编译问题,因此请务必检查 :ref: intro-install-platform-notes

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

注意事项
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 包,这些包可能需要额外的安装步骤,具体取决于您的平台。请查看 &#x4E0B;&#x65B9;&#x7684; :ref:平台特定指南。

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

lxml安装
:doc: &#x52A0;&#x5BC6;&#x5B89;&#x88C5; <cryptography:installation></cryptography:installation>
使用虚拟环境(推荐)
TL;DR:我们建议在所有平台的虚拟环境中安装 Scrapy。

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

相反,我们建议您在所谓的”虚拟环境”(:mod: venv)中安装 Scrapy 。虚拟环境允许您不与已经安装的 Python 系统包冲突(这可能会破坏您的一些系统工具和脚本),并且仍然可以正常安装包pip(没有sudo和类似的东西)。

有关如何创建虚拟环境的信息,请参阅:ref: tut-venv

一旦你创建了一个虚拟环境,你就可以在其中安装 Scrapy pip,就像任何其他 Python 包一样。(有关 您可能需要预先安装的非 Python 依赖项,请参阅下面的:ref: &#x5E73;&#x53F0;&#x7279;&#x5B9A;&#x6307;&#x5357; <intro-install-platform-notes></intro-install-platform-notes>)。

平台特定的安装说明
视窗
尽管可以使用 pip 在 Windows 上安装 Scrapy,但我们建议您安装Anaconda或Miniconda并使用来自conda – forge频道的软件包 ,这将避免大多数安装问题。

安装Anaconda或Miniconda 后,使用以下命令安装 Scrapy:

conda install -c conda-forge scrapy
使用pip以下命令在 Windows 上安装 Scrapy :

警告

这种安装方法需要”Microsoft Visual C++”来安装一些 Scrapy 依赖项,这比 Anaconda 需要更多的磁盘空间。

下载并执行Microsoft C++ Build Tools以安装 Visual Studio 安装程序。

运行 Visual Studio 安装程序。

在 Workloads 部分下,选择C++ build tools。

检查安装详细信息并确保选择以下软件包作为可选组件:

  • MSVC (例如 MSVC v142 – VS 2019 C++ x64/x86 构建工具 (v14.23))
  • Windows SDK(例如 Windows 10 SDK (10.0.18362.0))

安装 Visual Studio 构建工具。

现在,你应该能够:REF: &#x5B89;&#x88C5;Scrapy <介绍安装-scrapy><!--介绍安装-scrapy-->使用pip。

Ubuntu 14.04 或以上
Scrapy 目前已使用最新版本的 lxml、twisted 和 pyOpenSSL 进行测试,并且与最新的 Ubuntu 发行版兼容。但它也应该支持旧版本的 Ubuntu,比如 Ubuntu 14.04,尽管存在 TLS 连接的潜在问题。

不要使用python-scrapyUbuntu 提供的软件包,它们通常太旧而且速度太慢,无法赶上最新的 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
在:ref: virtualenv <intro-using-virtualenv></intro-using-virtualenv> 中,您可以pip在此之后安装 Scrapy :

pip安装scrapy

相同的非 Python 依赖项可用于在 Debian Jessie (8.0) 及更高版本中安装 Scrapy。

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

xcode-select --install

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

(推荐) 不要使用系统 python,安装一个新的、更新的版本,不与系统的其余部分冲突。以下是使用自制程序包管理器执行此操作的方法:

按照https://brew.sh/ 中的说明安装自制软件

更新您的PATH变量以说明应该在系统包之前使用自制程序包(如果您使用zsh作为默认 shell,则更.bashrc改为.zshrc一致):

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

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

source ~/.bashrc

安装python:

brew install python

最新版本的 python 已pip与它们捆绑在一起,因此您无需单独安装它。如果不是这种情况,请升级python:

安装升级,安装升级python
(可选) :ref: &#x5728; Python &#x865A;&#x62DF;&#x73AF;&#x5883; <intro-using-virtualenv></intro-using-virtualenv> 中安装 Scrapy。

此方法是上述 macOS 问题的解决方法,但它是管理依赖项的总体良好做法,可以补充第一种方法。
在任何这些解决方法之后,您应该能够安装 Scrapy:

pip install Scrapy

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

brew update; brew upgrade python

大多数 Scrapy 依赖项现在都有用于 CPython 的二进制轮子,但没有用于 PyPy。这意味着将在安装期间构建这些依赖项。在 macOS 上,你可能会遇到构建 Cryptography 依赖的问题,这里描述了这个问题的解决方案 ,即brew install openssl导出该命令推荐的标志(仅在安装 Scrapy 时需要)。除了安装构建依赖项之外,在 Linux 上安装没有特殊问题。在 Windows 上使用 PyPy 安装 Scrapy 未经过测试。

您可以通过运行来检查 Scrapy 是否安装正确scrapy bench。如果此命令给出诸如 之类的错误 TypeError: … got 2 unexpected keyword arguments,则意味着 setuptools 无法获取 PyPy 特定的依赖项。要解决此问题,请运行pip install ‘PyPyDispatcher>=2.1.0’.

故障排除
AttributeError: ‘module’ object has no attribute ‘OP_NO_TLSv1_1’
安装或升级 Scrapy、Twisted 或 pyOpenSSL 后,您可能会收到以下回溯的异常:

[…] File “[…]/site-packages/twisted/protocols/tls.py”, line 63, in

from twisted.internet._sslverify import _setAcceptableProtocols File “[…]/site-packages/twisted/internet/_sslverify.py”, line 38, in

TLSVersion.TLSv1_1: SSL.OP_NO_TLSv1_1, AttributeError: ‘module’ object has no attribute ‘OP_NO_TLSv1_1’

您收到此异常的原因是您的系统或虚拟环境具有您的 Twisted 版本不支持的 pyOpenSSL 版本。

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

pip install twisted[tls]

Original: https://blog.csdn.net/weixin_36919815/article/details/120077087
Author: MaJson
Title: 爬虫框架Scrapy入门与实践-环境搭建及图解(1)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/791404/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球