升级Python3
之前使用Scrapy开发爬虫都是在Python2的环境下进行,最近有看到有些工具包宣称不再对Python2提供更新和维护, 可以看出Python3是发展的趋势。
而早前Scrapy已经支持了Python3这让我意识到必须尽快将我的工作环境迁移到Python3, 毕竟习惯是很可怕的一件事。
尝试
环境:
- Win7
- Python3.5.2
依靠直觉我们会利用pip工具直接安装Scrapy:
pip install scrapy
不幸的是得到了一堆错误。
对照官网文档关于Scrapy依赖的描述,使用工具pip list
查看我们依赖的安装情况很容易发现Twisted的安装出现了问题。
系统提示我们安装VC++工具包:
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版本试试看。
pip install Twisted==14.0
安装成功!
Installing collected packages: Twisted
Successfully installed Twisted-14.0.0
解决了依赖问题我们再重新安装Scrapy
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, 执行:
pip install twisted==15.5 --upgrade
升级后重新执行scrapy
(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安装成功。