scrapy-框架结构和爬取对象
如图
一般创建好工程以后目录是这样的
和框架图能够对应起来的好像就只有middlerwares和pipelines
其实呢,的确有些东西你也是看不到的
而且,我要的是葫芦,蚜虫什么的农夫会管理,也不用我们操心
真想知道,要么从cpu开始学,要么先会用了后来慢慢加深
要说的话,框架全靠scrapy引擎,这个就是老大了
老大手下有四员大将:
1. 调度器:任务之间统筹和调度
2. 下载器:负责从网络上获取资源
3. 爬虫:解析资源,获取资源链接或者跟进任务链接,任务链接调度器自动排布任务
4. 管道:资源的处理
还有中间件:middlerwares
中间件就好比安插在大将身边的指令员(内奸),用来传达上级的命令
事情当然是你来做,但是具体怎么做,看中间件的传达
然后可以看出来,工程中的差异:没看见引擎,调度器和下载器,多了个items和settings
把scrapy当做管家,准备做一道菜呢,工作流程是这样的
1. spider摘菜:摘菜,传达还需要的菜
2. downloader跑腿:到指定的菜市场带回一大堆菜
3. scheduler管家婆:布置任务,保证任务有条不紊
4. pipelines厨师:处理原材料,就是摘好的菜了
5. middlewares内奸:传达管家的意思,必要的让组件按照上级意思处理细节
所以,我们现在操纵着大管家,管家婆照常工作,downloader太低级
所以我们操控好摘菜的和炒菜的,任然能够出菜
至于大管家的小内奸,摸清楚套路了我们也能操控全部的人
至于工程当中的items和settings?
settings就是管家的文书了,是使用说明也是太后手谕
一方面你可以从里面看出你能操控些什么,一方面你也只有通过settings发布命令才能得到执行
items的话,就有点鸡肋了
摘菜?摘什么菜
items就是这样了,满汉全席的话这就很有条理
如果是个煮南瓜的话,就是个南瓜还要怎么做,瞎鸡巴列清单
就是这样,说明的也没啥,其实就是个名字而已
类型都用Field就行
所以呢,抛开管家(引擎),抛开管家婆(调度器),抛开跑腿(下载器),抛开内奸(中间件)
就是这样了
0. 大家都按照settings的工作要求来做
1. spider根据items摘出需要的菜
2. pipelines来炒菜
框架嘛,都不是用来学的,而是用来用的
你不是用它来爬,而是告诉他怎么爬
资源就都会到你手里,想办法摘菜炒菜就好了
如果他实在太蠢,你就用内奸告诉它怎么才能爬下来(代理),至于真正爬的,还是它