1 什么是框架
框架:Django,flash,tensorflow…
框架:别人做好的地基,只需要在别人的基础上做自定义的修改。优势是能够协助开发者来实现快速的开发。
2 scrapy框架
scrapy框架:是用纯python实现一个为了爬取网站数据、提取结构i数据而编写的应用框架,用途非常广发。
用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常方便。(之前知识爬取网页,需要导入requests库或urllib库来爬取网页,导入beautifulsoup库来解析。。。知识点分开,scrapy把这些东西整合在一起)
scrapy使用Twisted异步网络架构来处理网络通信,可以加快下载速度,不用自己去实现异步架构,并且包含了各种中间件接口,可以灵活的完成各种需求。
scrapy Engine(引擎): 负责spider、ItemPipline、DownLoader、Scheduler中间通信,信号数据传——接受其他组件发送来的信号,发送信号给其他组件。
Scheduler(调度器): 负责接受引擎发送过来的request请求,按照一定的方式进行整理排列,如队,当引擎需要时,交还给引擎。
Downloader(下载器): 负责下载scrapy engine(引擎)发送的所有requests请求,并将其获取到的responses交还给scrapy engine(引擎),由引擎交给spider来处理
Spider(爬虫): 它负责处理所有Response从中分析提取数据(Xpath、Re…),获取item字段需要的数据(Iterm类似字典,已经定义好键,此处只需要填入值),并将需要跟进的URL提交给引擎,再次进入Scheduler调度器。
Item Pipeline(管道): 它负责处理spider中获取到的item,并进行后期处理(详细分析、过滤、存储等)的地方。
Downloader Middleware(下载中间件): 自定义扩展下载功能的组件
Spider Middleware(Spider中间件): 自定义扩展和操作引擎和spider中间通信的功能组件(比如进入Spider的Responses和从spider出去的requests)
4 scrapy运作流程
(1)spider(爬虫)会定义好一开始爬取的url地址,构建请求(Requests)——》将请求交给Engine(引擎)——》引擎再将请求交给Scheduler(调度器)(请求入队列)——》Scheduler(调度器)再将请求交给Downloader(下载器)(请求出队列)下载——》下载器返回响应文件(Response)给引擎——》引擎将响应文件(Response)再传递给spider(爬虫)。
(2)爬虫从响应文件中提取想要的内容(数据)——》交给Item Pipeline(管道)进行处理、存储等。
(1)步骤可能是循环多次的操作,为了得到最后想要的结果。如果得到最终想要的数据,再最后执行(2)步骤。
5 制作scrapy爬虫步骤
(1)新建项目(scrapy startproject XXX):新建一个新的爬虫项目
(2)明确目标(编写items.py):该文件是创建项目时已经创建好的,该py文件可以定制想要抓取数据的字段,相当于字典,在该item中定制好字典的键,提取数据的时候存储字典的键对应的内容。
(3)制作爬虫(spiders/xxspider.py):制作爬虫开始爬取网页
(4)存储内容(pipelines.py):设计管道存储爬取内容。把item字段处理好后交给这个文件去存储。
5 scrapy框架安装
6 scrapy命令行
Scrapy命令行: Scrapy命令行是为持续运行设计的专业爬虫框架,提供操作的Scrapy命令行。cmd下执行srapy -h
Scraoy命令行格式: scrapy [options] [args]
Scrapy常用命令:
startproject 创建一个新工程 scrapy Startproject [dir]
genspider 创建一个爬虫 scrapy genspider [options]
settings 获取爬虫配置信息 scrapy settings [options]
crawl 运行一个爬虫 scrapy crawl
list 列出工程中所有爬虫 scrapy list
shell 启动URL调试命令行 scrapy shell [url]