Scrapy框架详解
框架图
目录结构
cmd 操作
1.创建项目
- scrapy startproject 项目名
2.进入项目
- cd 到项目目录下
3.创建爬虫程序
-
scrapy genspider 爬虫名 爬虫域(xxx.com)
- 创建完成后自动生成scrapy文件框架
4.运行爬虫
- crapy crawl 爬虫名
5.列出所有爬虫
- scrapy list
框架组成
Spiders 爬虫器
- 处理所有的responses 分析数据 获取需要的数据 获取跟进url 提交给引擎
Engine 引擎
- 处理整个系统的数据流,是框架的核心
Schedule 调度器
- 接受引擎发送来的请求 加到队列中 处理之后再返回给引擎
Downloader 下载器
- 下载网页内容 并将结果返回给spider
ItemPipeline 项目管道
- 处理spider 从返回的对象中抽取出来的数据
将这些数据储存再数据库中
Downloader Middlewares 下载中间件
- 处于scrapy 的Request 和 Requesponse之间 的处理模块
Spider Middlewares spider中间件
- 位于引擎 和spider 中间的框架 主要处理spider输入的响应和输出的结果及新的请求middlewares.py里实现
scrapy框架执行流程
1.spider的yeild将request发送给engine
2.engine对request不做任何处理发送给scheduler
3.scheduler,生成request交给engine
4.engine拿到request,通过middleware发送给downloader
5.downloader在\获取到response之后,又经过middleware发送给engine
6.engine获取到response之后,返回给spider,spider的parse()方法对获取到的response进行处理,解析出items或者requests
7.将解析出来的items或者requests发送给engine
8.engine获取到items或者requests,将items发送给ItemPipeline,将requests发送给scheduler(ps,只有调度器中不存在request时,程序才停止,及时请求失败scrapy也会重新进行请求)