1、概念:scrapy是一个由python编写的爬虫框架,用于爬取网络数据、提取结构性数据的框架。使用了Twisted异步网络框架,可以加快下载速度。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
2、作用:少量的代码就可以实现快速的抓取。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
3、工作流程文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
爬虫的工作流程:起始url — url队列 — 发送请求获得响应 — 解析响应 — 保存数据文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
其中,如果网页需要翻页,在解析响应时会重新获取一个url,重复步骤2-4。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
Middlewares:爬虫、下载中间件,定制化操作,一般不需要自己写文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
绿箭头:数据流文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
Scrapy Engine:引擎,驱动各个模块的运行,负责数据和信号在不同模块间的传递,类似于通信中的运营商文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
Scheduler:调度器队列,存放引擎发过来的request请求(get pop)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
Download:下载器文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
Spiders:爬虫,发起起始请求(url的封装),解析响应(数据,新的url)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
Item Pipeline:Item对象,处理数据(保存数据)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
其流程可以描述如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
1. 爬虫中起始的url构造成request对象–>爬虫中间件–>引擎–>调度器文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
2. 调度器把request–>引擎–>下载中间件—>下载器文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
3. 下载器发送请求,获取response响应---->下载中间件---->引擎—>爬虫中间件—>爬虫文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
4. 爬虫提取url地址,组装成request对象---->爬虫中间件—>引擎—>调度器,重复步骤2文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
5. 爬虫提取数据—>引擎—>管道处理和保存数据文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
scrapy的三个内置对象文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
· request请求对象:由url method post_data headers等构成文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
· response响应对象:由url body status headers等构成文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html
· item数据对象:本质是个字典文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/28265.html