Python3下Scrapy环境的搭建

欲善其事,必先利其器。

升级Python3

之前使用Scrapy开发爬虫都是在Python2的环境下进行,最近有看到有些工具包宣称不再对Python2提供更新和维护, 可以看出Python3是发展的趋势。

而早前Scrapy已经支持了Python3这让我意识到必须尽快将我的工作环境迁移到Python3, 毕竟习惯是很可怕的一件事。

尝试

环境:

  • Win7
  • Python3.5.2

依靠直觉我们会利用pip工具直接安装Scrapy:

1
pip install scrapy

不幸的是得到了一堆错误。

对照官网文档关于Scrapy依赖的描述,使用工具pip list查看我们依赖的安装情况很容易发现Twisted的安装出现了问题。

系统提示我们安装VC++工具包:

1
2
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": ht
tp://landinghub.visualstudio.com/visual-cpp-build-tools

但是之前我在2的环境下是可以正常使用Scrapy的,系统环境不会有问题,也许可能存在其他方面的问题。

再回到官方文档发现一些信息:

The minimal versions which Scrapy is tested against are:
    Twisted 14.0
    lxml 3.4
    pyOpenSSL 0.14

这是官方经过测试的依赖的最小版本,既然Twisted安装失败了,那么尝试指定安装Twisted的14.0版本试试看。

1
pip install Twisted==14.0

安装成功!

Installing collected packages: Twisted
Successfully installed Twisted-14.0.0

解决了依赖问题我们再重新安装Scrapy

1
pip install scrapy
Installing collected packages: PyDispatcher, pyasn1-modules, service-identity, scrapy
Successfully installed PyDispatcher-2.0.5 pyasn1-modules-0.2.1 scrapy-1.5.0 service-identity-17.0.0

一切顺利,我们输入scrapy指令测试下:

import twisted.persisted.styles  # NOQA
ImportError: No module named 'twisted.persisted'

看来我们的Twisted包版本还是有点低,少了某些功能模块,网上查阅资料是要大于15.5, 执行:

1
pip install twisted==15.5 --upgrade

升级后重新执行scrapy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(root) C:\>scrapy
Scrapy 1.5.0 - no active project

Usage:
scrapy <command> [options] [args]

Available commands:
bench Run quick benchmark test
fetch Fetch a URL using the Scrapy downloader
genspider Generate new spider using pre-defined templates
runspider Run a self-contained spider (without creating a project)
settings Get settings values
shell Interactive scraping console
startproject Create new project
version Print Scrapy version
view Open URL in browser, as seen by Scrapy

[ more ] More commands available when run from project directory

Use "scrapy <command> -h" to see more info about a command

至此Scrapy安装成功。

坚持原创技术分享,您的支持将鼓励我继续创作!