scrapy的概念
1.为什么要学习Scrapy?
因为会让我们的爬虫更快、更强
2.什么是scrapy?
(1) Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取
*** 框架:特定需求下的所有功能*** , 知道框架和模块的区别
(2)Scrapy 使用了 Twisted['twɪstɪd]异步网络框架,可以加快我们的下载速度。
(3)Scrapy的官方文档 http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html
3. 异步与非阻塞的区别 ( 补充)
(1) 同步或异步指的是这样的一个过程
阻塞或非阻塞指的是拿到结果之前的状态
(2) 异步:调用在发出之后,这个调用就直接返回,不管有无结果
(3)非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程。
scrapy的工作流程
1. 之前使用的爬虫流程,获取响应内容,提取数据、保存数据等
如图:
2.scrapy的爬虫流程
图的解释:
(1) 中间 Scrapy Engline (scrapy 引擎) : 这个四个大模块是独立的,彼此之间没有联系,之间的联系都是通过
scrapy引擎来进行调度,scrapy引擎让谁执行谁就执行,类似于指挥交通的交警
(2)Downloader Middlewares (下载中间键):引擎会先把Requets对象交给下载中间键再然后交给Downloader
(3) Spider Middlewares (爬虫中间键) : 引擎会先把response交给爬虫中间键再交给Spiders
(4) 因为有引擎的存在,所以可以在中间键进行一些处理