00:00
好,同学们,那么接下来呀,我们要讲一下script的一个架构组成以及工作原理,但是呢,讲这个之前我先通过一个案例啊,来讲一下之前我们讲的什么叫和first,那我们能如果能提取数据的话,大家一定要去想哈,这里边到底是怎么执行的。对吧,它这个框架它是由什么构成的。对吧,它由什么构成的?那它的工作原理又是啥?这个就是我们这节课要讲的东西了啊,通过我们真实的案例来映射啥呀,映射它的工作原理,好同学们,那么接下来啊,我们在这儿打开一下汽车之家,OK啊,有同学喜欢车吧,对吧?我在里边随便搜一下宝马。OK,宝马好点一下这个热门车。
01:02
那么我们要做啥呢?我们要把它这个什么名啊,价格啊,图片,你想爬啥咱就爬啥啊,全要来对吧,那么这里边儿的东西大家要知道啊,要知道现在你是不是先找接口啊。到底这个页面是由哪个接口发起的呀,来走,嗯,我们看这里。但是是不是它呢,我们得看一下哈,第一个看preview有点感觉像那个意思对吧,但是其实我们不确定哈,我们不确定因为啥呢,它都是乱码了,我们看不懂是吧?所以在这我看一下response吧,在response的里边,这response里边我找一下什么东西呢?叫宝马一系可以吧,CTRLF宝马。一系来找一系啊。好,回车大家看有没有宝马一系啊,就在这儿了,不看到吗?哎,这个我这走走走宝马一系看到了各位,哎,这就是我们想要的数据了,有了,所以说诶这接口我们得复制一下啊,不复制白扯了吗?对吧,来刷新找到你这接口就是它了,把它复制一下,一会儿我们要用。
02:12
OK,同学们,那么紧接着我们是不是要创建项目了,对吧?哎,早起,然后呢,我们现在把这个你想写的这个代码的路径给他拿过来。CD。拿过来,嗯,OK,那在这里边我们要干啥,是不是要创建一个项目啊同学们对吧,我要创建一个项目,咋创建来着。Start project起个名吧,叫什么?再来一个car home,然后再来个下线,093明白不对,哎,这就是我们目录啊,你看之前我们多少了92了吧,那这把给它改成93走好,我们已经创建成功了,创建成功之后,接下来我们是不是要创建一下啥爬虫文件呢?对吧?哎,所以说在这个下边,在它下边的sc spiders里边,我们要创建一个爬虫文件叫啥来着?Car home,嗯,零九。
03:18
然后SCY,然后spiders OK。好在这里边同学们,我们切换过来了,切换过来干啥呀,是不是要创建项目啊,创建爬虫文件呢,对吧?Sc JA spider加上car,加上我们刚才的这个地址来走。好嘞,创建完成。创建成功之后,我们来找一找,看一看哈,就它呗,它之后有同学老师我把它删掉,嗯,把它删掉,那你接这里边打一句话哈,看它执行没执行,打一个啥呢?打一个这个等号吧,就看它看一下你的起始URL在执行的时候有没有执行这个DeFine这个pass方法呢,对吧,我们现在来运行一下它。
04:04
那叫scyve,然后加啥呀,Car都。啊,最大化一下啊,看有执行了吗?没执行啊没执行,现在咱们同学们的第一个反应是啥。是不是你认为他的包协议应该注释掉啊?然后你再运行,结果你发现咋的了,又没有,这时候大家就有点儿懵了,为啥呀,我告诉各位啊,这里边的原因并不在于此,而是在于啥?注意,当你的后缀是HTML的时候,它的后边不允许加盖。你看这个地址来,我给它复制一下啊,这个地址来走咋的了,是不是报错了,各位注意啊,它这个如果后缀是HTML的时候,它的后缀是不允许加啥呀,加这个杠啊,所以才出现了问题,所以我建议各位同学后边这杠一般情况下删掉啊,注意写要写注释啊。
05:12
注意,如果你的请求的接口是是啥呢?是HTML为结尾的,那么是不需要加啥呢加杠的。啊,不需要加杠的,千万要注意啊,千万要注意,那我们再来试试,如果把这个杠去掉呢,你看直径为直行走,你看来没来各位,哎,千万注意啊,千万注意这个事儿啊,那他有了我要干啥呀?同学们啊,我要干啥,我是不是先要他这帮名字啊,对吧?那现在我对他做一个定位。嗯。这个定位是谁呢?这个有个ID,有个慢抬,慢抬我们找找哈,得往下点,那对这是慢抬头S4171,我再定位一下宝马三系啊,宝马三系这里边也是啊,是慢title下边有个什么list count,看它哪个是一对呗,看这里边有一个叫啊interval count。
06:23
那我们就找一下它的这个结果是吧,谁下边的谁呀。对吧,哎,他是了,叫list can。然后count my这里边有吗?他有list count my吗?哎,这叫class一个类选择器啊,List count man,它这个图片我们要定位到谁,它名走是不是也是一个啥呀,叫list count mind下边的谁慢title,慢title我们好像也看到了,是不是有慢title啊,所以在这里边注意我们一点点找,我发现这个慢的title好像好用慢title下边的A标签里边的内容吧,怪,所以在这我们来打这个插件,打开一下。
07:11
Ctrl shift加X来了吧,来这里边写啥呀?写上杠杠杠杠C的这个慢抬头啊,是不是div啊,Div有个艾class等于什么慢,但title好是不是15个。15个之后我们还什么用评分什么3.9不,我不要那个是吧,我只要谁它下边的A下边的test内容吧,各位那看要没要到啊,是不是都要到了呀,宝马六系的一个GT对不对?各位哎,这不就找到了吗?那他找到之后,我们现在就写上呗,内下划线list等于啥呀?啊同学们等于啥?是不是等于我们的response点叉pass,然后在里边来写它呀,对吧,各位,那我来打印一下这个name list吧啊打印一下name list来运行它。
08:15
走。嗯,我们来看这里边好像好多呀,哎,这里边有有意思了,这是一个select的一个列表吧,同学们是不是列表,那我可不可以便利它呀。啊,是不是列表,那我可以遍历它呀,For,循环name in name list,然后来打印一下name,明白不?各位是不是打印斯莱克的对象了,我再类再运行它走,哎,我们发现它长成这个样子了,它长成样子我们说了,这不S莱克的对象了吗?他也不是列表啊,那么我怎么来提取这里边的date数据呢?
09:01
对吧,那同学们,我们看上一个的笔记来提取select date的属性值是ex这个的吧,对吧?问,所以在这里边我们接下来咋写呀?name.drink看到了问,来,我们再来运行一次,走你。我发现这个数据拿没拿到啊,没有任何问题吧,乖,哎,全都可以了吧,好,那这个既然有了接来我们还干啥呀,还可不可以要他的钱呢,对吧?右键定位好钱钱的话叫,诶直接叫price吗。直接price,我再定位看一下其他的来。定它好,好像是不是就叫他了,对吧,那我们现在改改叫SPA吧,是吧,来给它改杠杠span,然后来个艾class等于谁等于它,嗯,等于这个。
10:07
Press right是吧,等于它零,那为啥是零呢?注意啊,同学们一般后边带空格,这个我给它干掉一下,看有没有,好像还没有span这里边的数据啊,好像就不太对了,对吧?没有在这里边儿,但是大家先别着急,你是不是可以往上找一找对吧?诶所以说你在这里边,当你遇到一个选择器的时候,它并没有给你的支持,你你就要注意了啊,你就要注意了,等于再写上一下啊等于啥来着,叫做level-price好没有,那你就上上边去找,上上边去找找谁,它上面是谁呀,是不是还div呀,这里边到底哪个是我们想要的数据呢?还有个他这整个这里边的是吧,还有例子看曼是整个带图片的,还有个慢title是吧,还有个他那慢title和他应该是同级的,我就找他,这是一个啥呢,Div的一个class。
11:08
杠杆div at class等于啥,等于它好,同学们你看这个这个这个现在是不是没有啊,来到它到这到到失败,到时败到时败好有一个谁紧凑型的它,所以说同学们这个时候你就要注意了,你这个价格就有问题了,啥问题啊。我们本以为现在你是有能获得到啥呀他的,但是SPA是我没有值啊。对吧,SPA同学们别着急,再找它下边的SPA你再看,当我们找到这里边的时候,注意啊,它没有你也没关系,你干啥,你往下写,你往上边写就可以了啊,往上边写。OK,同学们,那么此时啊,这个span就有了,那我是不是要里边的test的呀?对吧?各位诶,如果以后标签有变化,你也知道咋做了,你往上走就没问题啊,没问题,好同学们,那么紧接着我在这又来了,叫啥呀?叫做price_list等于谁等于response点叉pass里边是不是来加这个路径,OK,对吧,那我再遍历一下谁呀?我这把它俩一起遍历不就完了吗?对吧?各位,那么来吧,说凤循环I in range。
12:29
那这里边儿写啥呢?是不是写一个LS谁name list还记得这个语法吗?同学们来print一下啊,Print我看一下啊,这是不是打印了他的一个索引下标走。好,我们看一共15个零到14,没有任何的问题吧,对吧,各位,所以说这里边我们就知道了啊,Name等于name list的I啊啥呀,是不是I呀,这个是不是找到了啥呀,同学们是不是找到了select列表里边的select对象等于price list里边的I,那这个两个它现在都是属于啥。
13:17
同学们,它都属于啥呀?都属于史莱克的对象吧,对吧?都属于史莱克对象,那么史莱克对象我要的是他吗?我要的是什么?我要的是不是里边的贝的数据对吧?各位,所以在这你很简单呢,点提取EXRI名会用了吗?各位,哎,它是提取的是select的啥date的属性值,嗯,好,再来你发现我们数据就采集到了,你看非常的标准吧,诶对不对,你将来你的这些数据是不是有用,我们做分析啊对吧?各位好,同学们,这就是我们采集了汽车之家,你加一块我们写几行代码啊,一共就写六行代码吧,其他写啥了吗?
14:06
很简单吧各位,所以说同学们注意啊,这个比这个框架确实能帮助我们咋的提高我们的运营效率,明白了吧,各位好啊,这就汽车之家。但是这里边呢,一我们是来讲这个,二就是讲它的一个架构组成以及原理,这里边有几个生词,希望咱们同学先记住,第一个说script,它的底层的架构组成是啥呢?第一个叫做引擎,看不到啊,自动运行,我们无需关注啊,会自动组织所有的请求对象分发给下载器啊,啥也不知道是吧?别着急,先把这个词熟悉了,引擎啊,下载器呀,Spiders啊,调度器呀,管道一共就五个。一个两个,三个,四个,五个,一共它的架构组成就五个东西,那这五个东西同学们你先有点小印象哈,接下来我说的这个工作原理非常的重要,那本来人家图是这样的,但是呢,为了让大家更加好的容易去理解它的工作原理,所以在这儿呢,我给大家画一个简易版的图啊,基本上你现在在网上查的都是长成这样。
15:29
啊,长成这样,而且都是英文啊,都是英文,所以说同学们注意啊,这几步分别要干啥,我不知道同学们会不会打麻将哈,他和打麻将是一个原理啊,是一个原理,为啥呢?大家看第一个这里边啊,谁是先打的牌呢?是spiders,我们说了spiders是不是SCP框架中的最重要的那个文件呢?对吧,各位,哎,是最重要的一个文件,所以同学们注意。由spiders就爬出文件发送给了,发送了一个啥URL给谁给引擎。
16:07
诶,给引擎,然后这个ul它的去向是去哪儿了呢?先看绿色的啊,不看红色,它的去向由spiders到引擎,然后紧接着引擎又咋的给调度器了。对吧,给调戏就是他打了一张牌,诶调度机碰了一下对吧,碰完之后他又打出了一个啥,打出了一个请求,明白不?各位他打出了一个请求,这个请求打完了之后,诶下载器我又碰。对吧,下载器碰完之后回去作弊了,上哪儿啊,上互联网上要数据了,哐哐哐一顿将这个请求拿下来之后,变成了一个啥数据。他出了千了对吧,打出这个数据之后又被谁同学们注意了啊,这个数据其实际上就是我们之前看到的那个response啊,Response他上互联网上把response拿下来,然后response咋的在这儿做各种解析,因为什么?因为他给你的数据非常的多,而我们要解析的是啥呀,我们想要的数据。
17:19
哎,这当当你解析的时候啊,同学们,如果你解析出来的结果有两种,一,如果解析出的数据,它就直接给管道下载了。如果你解析出来了,又是另一个urr地址,那么它又重新的走了一遍刚才的操作,那么同学们我们再来捋一下这个东西,由spider打出一张牌叫URL,这张牌很凑巧被调度器碰了一下子,调度器之后打出了一个请求,这个请求又被下载器拿走,下载器上互联网下载数据,拿出了一个数据,其实就是我们的response,那么这个response之后再由spids进行叉pass解析,它解析完之后,如果你解析的结果是数据了,我就被管道下载了,如果你解析出数据又是URL了,我又执行一遍,明白吗?各位,大家先把这个图,我刚才说的这个流程记下来,接着之后我们再看。
18:21
我在这儿啊,给各位同学总结了11条工作原理,那么这11条工作原理希望咱们同学记下来啊,并且要把它流利的说出来。第一个引擎向斯白德要ul。引擎将要爬取URL给调度器,调度器呢,因为它有很多U啊,然后咋整啊,调度器会将URL生成请求对象放到一个指定的队列里边,加一队列,你先来,你是不是先放里边。然后队列,然后打出了一个啥,从队列出来一个请求。
19:00
好,将这个请求交给谁啊?将请求给引擎,引擎又交给谁呀?下载器,下载器发送这个请求,去互联网上下载数据。下载的数据呢,又返回给引擎。然后引擎再次给到spiders。那么通过叉pass去解析这个数据,如果得到数据呢?有管道继续下载,那继续保就保存了,如果还是URL呢?又给了谁呀?引擎,然后又给了调度器,所以同学们,这个就是SC的一个工作原理,那么这个工作你记住非常重要啊,如果说将来你要从事爬虫工作,那么工作原理应该是必问的一道题。啊,非常重要的一个题啊,同学们,这个就是快B的工作原理了啊,希望咱们同学啊,在这个看视频的时候,在课下的时候,可以把干啥呀给它记下来,给它背下来啊,然后当然网上是这样一个图啊,这样图也是一样的啊,它也就是说它就是从spider嘛,到引擎,引擎到那个调度器,调度器之后回来一个请求,请求到下载器,下载器到互联网,从互联网又返回数据,又给引擎,引擎给spider,然后如果是啥呢?是这个数据了,就干啥管道下载了,如果是URL的右次执行了啊,这图呢,我认为没有我画这个图啊,它更加清晰啊,所以说希望咱们同学们把这个工作原理要记下来啊,好,同学们以上呢,就是我们针对于汽车之家以及映射出script的工作原理的操作,当然我再多说一句啊,这个工作原理是我们看不到的,是他自己直接执行的啊。好,同学们,我把视频暂停一下。
我来说两句