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 ...
随机推荐
- Shell Script - 追踪与debug
[root@www ~]# sh [-nvx] scripts.sh 选项与参数: -n :不要运行 script,仅查询语法的问题: -v :再运行 sccript 前,先将 scripts 的内容 ...
- android最火的开源项目
原文地址:http://www.csdn.net/article/2013-05-21/2815370-Android-open-source-projects-finale 此前,CSDN移动频道推 ...
- linux下由带-开头文件想到的
如果要删除文件-aaa,使用rm -aaa是不行的,rm会认为-后面的是参数.2种办法: 1 带明确路径指示 rm ./-aaa 2 使用 -- :rm -- -aaa 因为命令如果发现参数中有--, ...
- 和菜鸟一起学linux之DBUS基础学习记录
D-Bus三层架构 D-Bus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信.它是个3层架构的IPC 系统,包括: 1.函数库libdbus ,用于两个应用程序互相联系和交互消息. 2.一 ...
- Nginx安装Nginx-echo模块
Nginx-echo可以在Nginx中用来输出一些信息,是在测试排错过程中一个比较好的工具.它也可以做到把来自不同链接地址的信息进行一个汇总输出.总之能用起来可以给开发人员带来挺大帮助的.下面看看我们 ...
- spring boot + quartz 集群
spring boot bean配置: @Configuration public class QuartzConfig { @Value("${quartz.scheduler.insta ...
- jQuery选择器面试题
$("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("di ...
- 【深入理解Java内存模型】
深入理解Java内存模型(一)--基础 深入理解Java内存模型(二)--重排序 深入理解Java内存模型(三)--顺序一致性 深入理解Java内存模型(四)--volatile 深入理解Java内存 ...
- Day7 子类调用父类的方法supper 绑定方法与非绑定方法
supper:可以利用supper来重用父类的方法,可以不用指名道姓的调用了. class OldboyPeople: school = 'oldboy' def __init__(self,name ...
- Django Channels 入门指南
http://www.oschina.NET/translate/in_deep_with_django_channels_the_future_of_real_time_apps_in_django ...