安装 Scrapy

Scrapy 运行在 Python 2.7 和 Python 3.3 或更高版本上。

如果您使用的是 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,一个 HTML/XML 数据提取库,依赖 lxml 库
  • w3lib,用于处理 URL 和网页编码的多用途助手
  • twisted,一个异步网络框架
  • cryptography 和 pyOpenSSL,以处理各种网络安全需求

Scrapy 测试过的最低版本是:

  • Twisted 14.0
  • lxml 3.4
  • pyOpenSSL 0.14

这些库更低版本也可能使 Scrapy 正常工作,但在将来不能保证它继续工作,因为它们没有被测试。

其中一些软件包本身依赖非 Python 软件包,这可能需要额外的安装步骤,具体取决于您的平台。 请查看下面的平台安装指南。

如果这些依赖出现了问题,请参考各自的安装说明:

使用虚拟环境(推荐)

(太长,别看):我们建议在所有平台的虚拟环境中安装 Scrapy。

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

相反,我们建议您在“虚拟环境”(virtualenv)中安装 Scrapy。Virtualenvs 避免了与已经安装的 Python 系统软件包发生冲突(可能会破坏您的一些系统工具和脚本),并且仍然可以通过 pip 安装软件包(没有 sudo 等)。

要开始使用虚拟环境,请参阅 virtualenv 安装说明。

$ [sudo] pip install virtualenv

查看这个用户指南,了解如何创建 virtualenv。

注意

在 Linux 或 OS X 上,virtualenvwrapper 是一个创建 virtualenvs 的便利工具。

一旦创建了一个 virtualenv,就可以像其他 Python 软件包一样在其中安装 Scrapy。 (有关可能需要事先安装的非 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 12.04 或更高版本

Scrapy 目前正在使用最新版本的 lxml,twisted 和 pyOpenSSL 进行测试,并且与最新的 Ubuntu 发行版兼容。 但它也支持较早版本的 Ubuntu,如 Ubuntu 12.04,尽管存在潜在的 TLS 连接问题。

不要使用 Ubuntu 提供的 python-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 开发头:

sudo apt-get install python3 python3-dev

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

pip install scrapy

注意

在 Debian Wheezy(7.0)及更高版本中安装 Scrapy 同样需要上文提到的非 Python 依赖关系。

Mac OS X

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

xcode-select --install

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

  • (推荐)不要使用系统 Python,安装一个不会与系统其余部分冲突的最新版本。 以下是使用 homebrew 包管理器的方法:

    • 按照 http://brew.sh/ 中的说明安装 homebrew
    • 更新您的 PATH 变量以说明在系统软件包之前应该使用 homebrew 软件包(如果您使用 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:
brew update; brew upgrade python
  • (可选)在独立的 Python 环境中安装 Scrapy。

此方法是上述 OS X 问题的解决方法,它是管理依赖关系的良好做法,可以补充第一种方法。

virtualenv 是一个可以用来在 python 中创建虚拟环境的工具。 我们推荐阅读 http://docs.python-guide.org/en/latest/dev/virtualenvs/ 这样的教程来了解它。

使用任一上述解决方法后,您应该能够安装 Scrapy:

pip install Scrapy

Scrapy 1.4 文档 02 安装指南的更多相关文章

  1. Scrapy 1.4 文档 03 Scrapy 教程

    在本教程中,我们假设您已经安装了Scrapy.如果没有,请参阅安装指南. 我们将要抓取 quotes.toscrape.com,一个列出著名作家的名言(quote)的网站. 本教程将引导您完成以下任务 ...

  2. Scrapy 1.4 文档 01 初窥 Scrapy

    初窥 Scrapy Scrapy 是用于抓取网站并提取结构化数据的应用程序框架,其应用非常广泛,如数据挖掘,信息处理或历史存档. 尽管 Scrapy 最初设计用于网络数据采集(web scraping ...

  3. Scrapy 1.4 文档 05 命令行工具

    在系统命令行中,使用 scrapy 命令可以创建工程或启动爬虫,它控制着 Scrapy 的行为,我们称之为 Scrapy 命令行工具(command-line tool)或 Scrapy 工具(Scr ...

  4. Scrapy 1.4 文档 04 例子

    最好的学习方法是举例说明,Scrapy也不例外. 因此,我们有一个名为 quotesbot 的 Scrapy 项目,您可以通过它来学习更多关于 Scrapy 的知识. 它包含两个用于http://qu ...

  5. 李洪强iOS开发之-环信02.1_环信 SDK 2.x到3.0升级文档

    李洪强iOS开发之-环信02.1_环信 SDK 2.x到3.0升级文档 SDK 2.x 至 3.0 升级指南 环信 SDK 3.0 升级文档 3.0 中的核心类为 EMClient 类,通过 EMCl ...

  6. Mongodb 笔记02 创建、更新和删除文档

    创建.更新和删除文档          1. 插入并保存: 1). 单条插入,insert : db.foo.insert({"bar":"baz"}) 2). ...

  7. JavaSE学习笔记02运算符、帮助文档生成与Scanner输入

    1. 运算符 1. 算术运算符:+,-,*,/,%,++,-- //二元运算符 int a = 10; int b = 20; int c = 25; int d = 25; System.out.p ...

  8. 阳明-K8S训练营全部文档-2020年08月11日14:59:02更新

    阳明-K8S训练营全部文档 Docker 基础 简介 安装 基本操作 Dockerfile Dockerfile最佳实践 Kubernetes 基础 简介 安装 资源清单 Pod 原理 Pod 生命周 ...

  9. C#向PPT文档插入图片以及导出图片

    PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...

随机推荐

  1. 安卓系统启动脚本init.rc说明文件readme.txt翻译

    本说明文件位于system/core/init/readme.txt 本文参考深入解析安卓系统一书,进行翻译,版权部分归书的作者  刘超,资深Android专家,系统架构师. 博客地址:http:// ...

  2. hadoop分布式安装部署详细视频教程(网盘附配好环境的CentOS虚拟机文件/hadoop配置文件)

    参考资源下载:http://pan.baidu.com/s/1ntwUij3视频安装教程:hadoop安装.flvVirtualBox虚拟机:hadoop.part1-part5.rarhadoop文 ...

  3. mysql性能优化之-innodb_flush_log_at_trx_commit

    innodb_flush_log_at_trx_commit是配置MySql日志何时写入硬盘的参数: 一.参数值说明 0:log buffer将每秒一次地写入log file中,并且log file的 ...

  4. Java Web开发中路径问题小结

     Java Web开发中,路径问题是个挺麻烦的问题,本文小结了几个常见的路径问题,希望能对各位读者有所帮助. (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 ...

  5. FFPLAY的原理(五)

    创建线程 Spawning Threads Overview Last time we added audio support by taking advantage of SDL's audio f ...

  6. Resin文档阅读笔记

    阅读文档对应的版本为Resin4.0,且基本只关注Standard版本的功能. 1.Resin可以注册为服务: To install the service, use C:/> resin-3. ...

  7. 2013-8:SDCE大会笔记

    百度移动云三大开发框架:Clouda,SiteApp,AppBuilder MBaaS解决高性能Server很难的问题 百度开放云的区域运营服务于创业者 Pinterest架构变迁: 互联网就是把线下 ...

  8. Nowcoder84D

    Nowcoder84D 传送门 很有趣的进制转换题! 如果x满足题意,那么x+k-1一定能符合要求! 因为k-1用k进制表示就是1,-1,1+(-1)=0所以数位之和不变! 用map维护一下前缀和.就 ...

  9. HashMap原理浅析

    HashMap概述 HashMap是基于哈希表和Map实现来的,它提供所有可选的映射方式,可以允许使用null键,除了不同步和允许使用null键之外,HashMap和HashTable基本上相同.因此 ...

  10. Yii2表单提交(带文件上传)

    今天写一个php的表单提交接口,除了基本的字符串数据,还带文件上传,不用说前端form标签内应该有这些属性 <form enctype="multipart/form-data&quo ...