原文传送门:http://doc.scrapy.org/en/latest/index.html
1 scrapy安装
scrapy安装过程颇为麻烦,而官方文档在讲解安装过程时过于简洁,这里主要说明一下自己安装时的主要步骤:
- scrapy目前不支持python3, 于是安装32位版本的python2.7.10(操作系统为64位win8,以下所有软件包均安装32位版本)
安装setuptools:以管理员权限打开powershell, 输入:
(Invoke-WebRequest https://bootstrap.pypa.io/ez_setup.py).Content | python -
- 安装lxml: 推荐直接用msi文件安装
使用easy_install安装依赖包:
easy_install cssselect queuelib six w3lib zope.interface
使用pip安装依赖包:
pip install pyOpenSSL cryptography cffi pycparser twisted
安装scrapy:
easy_install scrapy
卸载scrapy:
pip uninstall cffi cryptography cssselect lxml pycparser pyopenssl queuelib six twisted w3lib zope.interface scrapy
2 scrapy简介
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
Scrapy提供了很多强大的特性来使得爬取更为简单高效, 例如:
- HTML, XML源数据 选择及提取 的内置支持
- 提供了一系列在spider之间共享的可复用的过滤器(即 Item Loaders),对智能处理爬取数据提供了内置支持。
- 通过 feed导出 提供了多格式(JSON、CSV、XML),多存储后端(FTP、S3、本地文件系统)的内置支持
- 提供了media pipeline,可以 自动下载 爬取到的数据中的图片(或者其他资源)。
- 高扩展性。您可以通过使用 signals ,设计好的API(中间件, extensions, pipelines)来定制实现您的功能。
内置的中间件及扩展为下列功能提供了支持:
- cookies and session 处理
- HTTP 压缩
- HTTP 认证
- HTTP 缓存
- user-agent模拟
- robots.txt
- 爬取深度限制
- 其他
针对非英语语系中不标准或者错误的编码声明, 提供了自动检测以及健壮的编码支持。
- 支持根据模板生成爬虫。在加速爬虫创建的同时,保持在大型项目中的代码更为一致。详细内容请参阅 genspider 命令。
- 针对多爬虫下性能评估、失败检测,提供了可扩展的 状态收集工具 。
- 提供 交互式shell终端 , 为您测试XPath表达式,编写和调试爬虫提供了极大的方便
- 提供 System service, 简化在生产环境的部署及运行
- 内置 Telnet终端 ,通过在Scrapy进程中钩入Python终端,使您可以查看并且调试爬虫
- Logging 为您在爬取过程中捕捉错误提供了方便
- 支持 Sitemaps 爬取
- 具有缓存的DNS解析器
3 scrapy简易教程
接下来以 Open Directory Project(dmoz) (dmoz) 为例来讲述爬取。</