zoukankan      html  css  js  c++  java
  • 二、安装 Scrapy

    零、安装 Scrapy

    Scrapy 必须运行在 CPython 或 PyPy 下的 Python 2.7 或 Python 3.5 及以上平台。如果您使用的是 Anaconda 或 Miniconda ,则可以从 conda-forge 安装该软件包,它包含适用于 Linux 、 Windows 和 OS X 的最新软件包。
    如果要使用 conda命令安装 Scrapy 只需运行以下命令:

    conda install -c conda-forge scrapy
    

    当你熟悉 Python 软件包的安装,则可以使用以下方法从PyPI安装Scrapy及其依赖项:

    pip install Scrapy
    
    1. 注意

    这里需要注意的是 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 虽然可以使用这些软件包的老旧版本,但不能保证它将继续工作。

    一、特定平台说明

    1. Windows
      尽管可以使用 pip 在 Windows 上安装 Scrapy ,但建议安装 Anaconda 或 Miniconda 并使用 conda-forge 中的软件包,可以避免大多数安装问题。使用以下命令安装 Scrapy :
    conda install -c conda-forge scrapy
    
    1. Ubuntu
      Scrapy 目前使用的是新版本的 lxml 、twisted 和 pyOpenSSL ,并与最新的 Ubuntu 发行版兼容。在 Ubuntu 系统上安装 scrapy ,需要安装如下依赖:
    sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
    

    如果要在Python 3上安装scrapy,则还需要Python 3开发标头:

    sudo apt-get install python3 python3-dev
    

    在 virtualenv 内部,可以使用 pip 安装 Scrapy :

    pip install scrapy
    

    注意:不要使用 python-scrapy Ubuntu 提供的软件包,它不是最新的软件包,而且存在兼容性问题。

    1. Mac OS
      Scrapy 需要依赖 C 编译器。在 OS X上,通常由 Xcode 开发工具提供。要安装 Xcode 命令行工具,在命令行中输入如下命令:
    xcode-select --install
    

    目前存在一个已知问题,无法通过 pip 更新系统软件包。必须解决此问题才能成功安装 Scrapy 及其依赖项。以下是一些建议的解决方案:

    • 不要使用系统自带 python,安装新的更新版本,该版本应与系统的其余部分不冲突;
    • 在虚拟环境中安装 Scrapy 。

    二、故障排除

    1. AttributeError: ‘module’ object has no attribute ‘OP_NO_TLSv1_1’
      在安装或升级 Scrapy、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 版本。秩序输入如下命令即可解决:

    pip install twisted[tls]
    

    的 pyOpenSSL 版本。秩序输入如下命令即可解决:

    pip install twisted[tls]
    
  • 相关阅读:
    1.vue-1
    7.Docker -- 虚拟服务器
    11.Django -- 中间件
    10.Django -- csrf -- 文件上传
    9.djang -- cookie和session
    8.Django --Ajax
    YOLO v1原理详解
    带你一文读懂Faster RCNN论文
    Week13
    Week12
  • 原文地址:https://www.cnblogs.com/gangzhucoll/p/12778129.html
Copyright © 2011-2022 走看看