爬虫界江湖地位No.1
说起Python,不得不说到它的爬虫应用,由于Python的短小精悍,用它来开发爬虫应用是最合适不过了,基于Python抓取网页的库有很多,例如requests,beatifulsoup等等,但是要说到有哪一个框架,能囊括了爬虫,解析,入库等全部功能的,就不得不提到Scrapy, 在它面前,大部分其他的爬虫库都显得弱爆了,可以说,不单单在Python界,在所有编程语言界,用Scrapy来做爬虫,开发蜘蛛项目,它称第二,没人敢称第一。
Scrapy简称就是碎片,确实,用Scrapy来做网页爬虫是非常棒的,它能够大规模的爬取网页,能根据各种定义好的特性去有针对性的抓取,例如广度优先BFD,深度优先DFD, 也可以根据配置的正则表达式过滤不需要的页面, 还可以对爬取的文件类型做出筛选,例如只抓取html页面,或者只抓取页面内的图片,视频。
基本来讲,以下的这些功能,scrapy都能给我们提供:
Scrapy功能一览:
1. 丰富的配置项定义:
上面有讲到,很多的配置项都可以直接在Setting里面写,Scrapy可以认为是一个周全的,开放式的框架,通过setting我们几乎可以去控制抓取,解析等方方面面的技术细节
2. 解析数据:
scrapy的数据解析是很强大的,并且跟selenium非常相似,如果我们已经接触过selenium,会对其xpath, selector, css这些解析API很有好感;
3. Middleware注入:
用注入来说明middleware的功能,这个类似于Java Spring框架的ROI实现,我们可以定义各种各样的middleware,去接管网页抓取,校验,存储等过程,当然,如果不需要自定义,直接使用它提供的缺省类,也是一样可以得到目的的。
此外,Scrapy还具备了以下的更多功能:
Scheduler模块:这是负责接收requests,对他们进行调度
- Spiders:这个用来给开发者去写定制化的蜘蛛
- Item Pipeline:这里就是做的抓取到item的处理功能了,例如清洗,持久化。
Scrapy爬虫框架既没有很庞大,功能也几乎能包含所有,并且简单,实用,它必须是一个好框架.