轻轻学爬虫—scrapy框架巧用4一张图了解爬虫启动
# 轻轻学爬虫—scrapy框架巧用4一张图了解爬虫启动
各位学者大家好,上节课我们尝试着写了一个小爬虫,这节课我们来看一张图,分析一张图中,scrapy框架都干了什么事。
话不多说直接上图。
![爬虫开始.png](http://www.icode9.com/i/li/?n=2&i=images/20210618/1624023183973144.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
为了方便观看我用我不熟练的美工手法画了一下,不是很好请见谅。
我们来逐一分析一下,这节课一般是在资料中学不到的,看着这不得来个三连。开始我们的讲解。
1. 第一步我们看看框内的信息,这些使我们本机的环境,使用的三方库是哪个版本。这个不是很重要我们可以简略。
2. Twisted的设计就是基于这样的Reactor模式,Twisted程序就是在等待事件、处理事件的过程中不断循环。reactor是事件管理器,用于注册、注销事件,运行事件循环,当事件发生时调用回调函数处理。这个是爬虫的核心,如果想了解可以在评论区留言。我会单独出一篇文章。
3. 这一步是加载我们框架中的setting配置,后续这个文件我们会讲,好多的配置都需要在这个文件中配置。
4. 这一步是中间设备信息:启用扩展,这一步开始我们要启动中间件了。
5. 这一步比较多这是加载downloader middlewares中间件,这个中间件比较多。我们开始的爬虫设计图是不是有downloader这个,可以回头看看。我们创建scrapy时候是不是也有个middlewares.py文件,这就是存放中间件的,这个文件也是比较重要的,我们会经常修改。中间件有好多httpproxy.HttpProxyMiddleware这个是代理的,后续我们会讲一些中间件。
6. 这步是spider的中间件,请求时候也会触发这个中间件,如果需要我们会讲一些,但是这里一般不需要修改。
7. 这一步是通道pipelines中间件,还有请求范围allowed_domains的信息。pipelines这个是通道和items两者密不可分,创建scrapy时候也有这两个文件,这是我们存储数据的通道。也是会经常用到。
8. 这一步爬虫就开始运行了首先获取robots.txt这是网站的一个原则,还有其他的好处,有需要我们在讲。告诉我们那些数据不能获取那些数据能获取。下面是例子
![rbort.png](http://www.icode9.com/i/li/?n=2&i=images/20210618/1624023195747233.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![淘宝robt.png](http://www.icode9.com/i/li/?n=2&i=images/20210618/1624023209544152.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
有了这些之后,就开始请求我们的地址了,这里使用的是get请求。之后就是我们写的代码解析工作了。到这里爬虫的启动我们就讲完了,创建项目的文件系统都会调用。都是有用的。
解析之后我们就有下面结果
![爬虫结束.png](http://www.icode9.com/i/li/?n=2&i=images/20210618/1624023222104363.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
这个就没啥好说了,一些时间等等信息,告诉我们爬虫已经结束了。
码字不易,欢迎大家在评论区留言,收藏。或者加入[群聊](https://jq.qq.com/?_wv=1027&k=vH00muGu)一起进步学习。