Scrapy 1.4 文档 02 安装指南
安装 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 安装指南的更多相关文章
- Scrapy 1.4 文档 03 Scrapy 教程
在本教程中,我们假设您已经安装了Scrapy.如果没有,请参阅安装指南. 我们将要抓取 quotes.toscrape.com,一个列出著名作家的名言(quote)的网站. 本教程将引导您完成以下任务 ...
- Scrapy 1.4 文档 01 初窥 Scrapy
初窥 Scrapy Scrapy 是用于抓取网站并提取结构化数据的应用程序框架,其应用非常广泛,如数据挖掘,信息处理或历史存档. 尽管 Scrapy 最初设计用于网络数据采集(web scraping ...
- Scrapy 1.4 文档 05 命令行工具
在系统命令行中,使用 scrapy 命令可以创建工程或启动爬虫,它控制着 Scrapy 的行为,我们称之为 Scrapy 命令行工具(command-line tool)或 Scrapy 工具(Scr ...
- Scrapy 1.4 文档 04 例子
最好的学习方法是举例说明,Scrapy也不例外. 因此,我们有一个名为 quotesbot 的 Scrapy 项目,您可以通过它来学习更多关于 Scrapy 的知识. 它包含两个用于http://qu ...
- 李洪强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 ...
- Mongodb 笔记02 创建、更新和删除文档
创建.更新和删除文档 1. 插入并保存: 1). 单条插入,insert : db.foo.insert({"bar":"baz"}) 2). ...
- JavaSE学习笔记02运算符、帮助文档生成与Scanner输入
1. 运算符 1. 算术运算符:+,-,*,/,%,++,-- //二元运算符 int a = 10; int b = 20; int c = 25; int d = 25; System.out.p ...
- 阳明-K8S训练营全部文档-2020年08月11日14:59:02更新
阳明-K8S训练营全部文档 Docker 基础 简介 安装 基本操作 Dockerfile Dockerfile最佳实践 Kubernetes 基础 简介 安装 资源清单 Pod 原理 Pod 生命周 ...
- C#向PPT文档插入图片以及导出图片
PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...
随机推荐
- Android控件属性android:visibility的invisible与gone的区别
"invisible" : 不可见 "gone" : 隐 藏 主要区别在于控件设置了invisible后控件不可见,但是保留了控件在界面上的空间, ...
- DOS窗口如何实现复制粘贴
最近很多时候直接ctrl+c和ctrl+v无法实现DOS中的复制与粘贴,自己输入很麻烦.就要选择其他方式.查找资源后,总结如下: 方法一:第一种方式:右键标记-->选中-->标题栏右键编辑 ...
- Sping--ApplicationEvent
//让其他的应用事件继承它 public abstract class ApplicationEvent extends EventObject { /** use serialVersionUID ...
- Cookie、sessionStorage、localStorage的区别
共同点:都是保存在浏览器端,且同源的.区别:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递.而sessionStorage和localStora ...
- 别跟我谈EF抵抗并发,敢问你到底会不会用EntityFramework
前言 一直以来写的博文都是比较温婉型的博文,今天这篇博文算是一篇批判性博文,有问题欢迎探讨,如标题,你到底会不会用EntityFramework啊. 你到底会不会用EntityFramework啊 面 ...
- Android Studio 2.3 instant run与miui冲突问题的解决
Android Studio最近发布的2.3版本,由于这个版本改进后的Instant Run功能和很多国内ROM存在兼容问题,所以导致不得不做一些妥协策略,具体在小米Rom上,就是把小米rom的调试定 ...
- MognoDB3.4.2用户访问配置管理
说在前面,官方文档似乎略有瑕疵. 说一下大规则:把绑定IP换成127.0.0.1IP之后,把security的authorization关闭掉做用户添加操作. 添加用户的方法必须是createUser ...
- 第一次作业 orm环境构建(hibernate)及基本的demo
一.数据库 1.创建数据库hibernate01-1514010311 2.创建表 customer CREATE TABLE customer( id int(11) not null auto_i ...
- Ocelot中文文档-路由
Ocelot的主要功能是接管进入的http请求并把它们转发给下游服务.目前是以另一个http请求的形式(将来可能是任何传输机制). Ocelot将路由一个请求到另一个请求描述为ReRoute.为了在O ...
- ExtJs Sencha Cmd创建项目以及编译项目
一:创建项目 sencha sdk tool2.0无法创建api为sencha-touch-2.2.1的项目,需要使用SenchaCmd代替sencha sdk tool,其步骤如下: 1,下载安装s ...