一.Scrapy介绍
![](http://a1.att.hudong.com/14/06/01200000163095134427064560761.jpg)
经常发现使用python编写爬虫的相关文章,可以使用urllib2便可以简单的实现,当然如果涉及到更进阶的东西比如爬取时的网站认证、内容的分析处理、重复抓取、分布式爬取等等也时间很复杂的事。所以实现一个鲁棒,功能丰富的爬虫也并不是容易的事。
本着不重复造轮子的原则,在google上或通过GitHub可以检索到相关并成熟的针对网站爬取的框架,Scrapy就是最著名并被广泛认可与使用的框架之一,源码托管在GitHub上(https://github.com/scrapy/scrapy),官网(http://scrapy.org)。
官方描述:Scrapy is a fast high-level screen scraping and web crawling framework, used to crawl websites and extract structured data from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing。
官方文档对其详细描述:
“Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。”
二.知识准备以及相关资料
看完介绍便可以确定你对它是否存在需求。笔者也是对网络爬虫感兴趣,慢慢接触Scrapy并决定写一系列教程。关于爬虫学习曲线,曾经在知乎上发现一篇文章,现转载过来:
地址:http://www.zhihu.com/question/20899988 作者:谢科 问题:Python 爬虫如何入门学习?
先长话短说summarize一下:
你需要学习
- 基本的爬虫工作原理
- 基本的http抓取工具,scrapy
- Bloom Filter: http://billmill.org/bloomfilter-tutorial/
- 如果需要大规模网页抓取,你需要学习分布式爬虫的概念。其实没那么玄乎,你只要学会怎样维护一个所有集群机器能够有效分享的分布式队列就好。最简单的实现是python-rq:https://github.com/nvie/rq
- rq和Scrapy的结合:https://github.com/darkrho/scrapy-redis
- 后续处理,网页析取(https://github.com/grangier/python-goose),存储(Mongodb)
全文可查看链接。以上方式是一种全面学习与爬虫实现的方式之一,对于比较简单的需求也就不需要那么复杂。本教程就是从头开始步步进阶以功能驱动实现特定需求的基于Scrapy爬虫。
相关资料与知识准备
- 关于Scrapy更详细说明可以参见官网,也可以下载官方教程。这里需注意教程版本与安装Scrapy版本对应。也存在对应官网正在翻译的中文教程,也很好。可google:Scrapy中文教程。
- python。但正如上面所述,你同样可以在学习Scrapy中学习python。
- 前端相关知识。了解html与xml基础语法,以便网页理解网页源码便于内容提取。在官方教程中推荐使用XPath执行信息查找。关于XPath可参见w3cschool中教程。更多的前端知识如css、js等可随需求慢慢了解。
对于基本使用上述已足够。
三.光看不干就是扯淡
第一步还是安装。
详细步骤可以参见官方文档:笔者用ubuntu,所以从这里说起。
-
Ubuntu下安装:
最好的方式是使用官方的ubuntupackage.
(1)导入GPGkey。
(2)创建scrapy.list。
(3)更新package list后安装Scrapy。 将上面VERSION换成你要安装版本号。
win下安装步骤有些多。请按照官方教程一步步来,链接如下:http://doc.scrapy.org/en/latest/intro/install.html。有问题请下方 评论区讨论。
原文链接:http://blog.csdn.net/u012150179/article/details/32343635