不用理会的知识
引擎、下载器、调度器:
· 下载器是负责发送请求和获得相应的
· 引擎是核心不需要动
· 调度器前期用不到,进阶后到源码才会用
重点学习的知识
项目管道、SPIDERS、爬虫中间件、下载中间件
· 项目管道:可以接很多管道 、用于存储 : 把爬取的网页数据处理分发,如图片、文字保存本地,网络存储,保存别的网站API
· SPIDERS: 重点是爬取规律,发起请求,处理数据 例如:抓取网站,第一个请求,相应的处理,提取的链接,接下来的请求和之后的处理
· 下载器中间件:难度大,如何绕开网站反扒措施,分析到方法、代码如何写;如:增加UA,随机切换UA,代理IP使用,随机切换不难,管理IP,因为IP有时效性,IP数量,使用率管理,内容简单,但是难度大
执行流程
SPIDERS请求,ENGINE转接给调度器用于处理批量请求的,也可以拓展成分布式的架构,调度器用于控制每个任务是怎么处理的,控制哪个优先处理,返回给引擎,再转给下载器中间件,加上东西如COOKIE,代理IP,refer,身份认证,随机UA,为了就是能正常拿到响应,再给下载器。
拿到响应后,给下载器中间件,处理如是否成功,是否需要跳转,是否需要重新请求,正常的给SPIDERS,不正常的会重新处理
SPIDERS对收到的响应进行分析,例如:响应的文本,请求头,响应的跳转记录都是可以提取的,响应文本,内容都是可以提取解析数据,1.可以存储的,一种数据结构item,直接进管道 2.URL,进入引擎再次请求。
网友评论