00:00
好了各位小伙伴,那么这节课呢,我们把之前留的那个作业,就是关于爬取我们豆瓣啊,豆瓣那个电影的那个250的那个排名,然后呢,去给大家讲一下啊,来豆瓣。啊,这个位置电影对吧,电影,然后它有一个叫做二百五二百五十。诶,有个排行在那里的啊,有个排行榜是吧,排行榜下边有一个电影豆瓣电影二百五啊,TOP250啊,TOP850250啊好豆瓣电影这个爬雪就是适当的啊呃,我们看一下就是我们需要这个爬的时候都要哪些信息,首先的话就是像这个标题得要对不对,然后呢,图片得要一下,然后还有什么标题图片。啊。诶,他有没有索引呢?就是哎还有索引对不对,就是第几名第几名对不对啊,然后这个还有其他信息吗。啊,再来一个介绍就完事了啊,再来一个介绍就完事了啊。都可以播放这个电影的,电影可以播。我没看过。哪里写的播放?哦,这里啊,这里预告片什么评论。但是没有那个啥呀。肖申克的救赎,不知道各位小伙伴看过没有,我靠,他是第一名啊。
01:03
啊,我看肖申克救赎,霸王别姬,阿甘正传,这个杀手不太冷,美丽人生,泰坦尼克号,千与千寻,辛德勒的名单啊,我这个没看过,上面的那几部都看完了,对盗梦。忠犬八工,海棠钢琴师这些都看过,嗯,确实是啊,推荐的电影还是不错的啊,好了来废话少说啊,我们来琢磨一下如何把这个这个页面的这个数据给爬下来啊,这节课来快速大家去做一下,当然了,我嗯之前给大家留的那个项目就是讲这个哈,然后呢。我们这个作为我们整个课程的最后一个内容的话,就是本来给大家去想去说一下这个进程与线程,然后其实也给大家去讲了,但是呢,我没有去做那个叫练习操作,所以呢,我这节课呢,给你讲一下,就是关于我们这个叫豆瓣电影的一个爬曲,然后剩余的就是你看一下能不能把我这个项目啊,使用多进程或多进程的这种方式啊,然后呢,把这个实现就可以了,好吧,呃,那这样的话就是这个这节课呢,就是作为我们整个啊整个项目,呃,这个这第二课程内容当中的最后一部分,当然了,呃,就是关于我们在学习未来学习这个爬虫的其他内容的时候呢,当然还有很多学习的路啊,比如说你遇到验证码怎么办,遇到反扒,遇到加密对吧,等等很多内容话,还有包括如何使用这个啊,P情当中的一些比较知名的框架词,快币啊什么啊,这个这个啊,Py spider等等一些比较知名的框架怎么去用啊,然后呢,嗯,后面的话,我计划可能会单独再开课,然后再给大家去讲,那基本上就是因为咱们这一节课呢,这个课的内容呢,主要还是让大家去熟悉一下常规的爬虫内容,我并没有想帮大家这个教到说你一定能爬虫非常绝对牛逼的地步啊,因为嗯,还是那句话,我觉得爬虫还是有风险的啊好了。
02:27
好玩笑,少看啊,能接下来我们去看一下右键来创建我们的今天的最后一个脚本啊,这是我们的第九个啊,九还是圆满的意思对吧?好爬虫进阶爬虫进阶进阶啊,我们这个叫豆瓣,豆瓣电影豆瓣电影电影排行榜排行爬曲曲。啊啊,或者叫就叫爬曲吧,爬曲啊,豆瓣电影豆瓣电影啊,就这吧,大家看一下爬曲啊,这个叫爬曲,这个叫豆瓣,豆瓣电影,豆瓣电影啊,这里边豆瓣光有电影比较多,然后还有关于这个书书评也比较多哈,对我我还看过好多书,然后都是从这个里边来来过来的哈,呃,首先是这样的,就是我们看一下这个呃这个这个这个这个盘中程序应该分为几呃几个部分啊,首先它应该有一个就是那个主程序,就是专门去执行我们这个叫呃程序,这个叫什么啊,我们的爬送调动执行了啊,所以这个地位的话,来一个MNN啊来括号。
03:22
Man括号括号啊呃,然后呢,这是作为爬虫的主动序啊,大家看这个就是我们这个,诶其实是这样的,就是程序的文档,一般是写到这个程序的这个里边,然后用双引号来进行标记的啊,就是主程序函数,主程序函数啊然后呢,负责干什么呢?它是负责负责干什么呢?负诶负负责调度。诶,负责。负责这个调度啊,调度我们当前的这个爬虫程序的调度。调度我们当前的这个爬虫程序啊,爬重程序啊,就是这个里边的啊,也就是说他需要接收一个那个叫参数,然后参数完成以后呢,哎,他帮你去爬虫啊,去去爬这个调度,呃,比如说他这个里边接收啊,你告诉我你当天的排取的这个叫页数,因为是这样的,你看大家看一下,就是我们之前大家说过这个豆瓣top,呃,TOP250,然后呢,它里边是有分页的对不对,你看你看那个12:25对不对,然后呢,嗯,看到位置再来,嗯,然后呢,后边十大的50对不对,就是每次它是不是都有那个样板数,然后第一次的话,十大为零,也就是说呃,它是从零开始,然后每个25就进行了一个跳转,对不对,进行一个跳转,第二页是25,第三页是50,诶这样的话,每个你看大家可以看到每一个网站的那个分页都不一样,对不对啊50,然后呢,大家能猜到就是第四的话是一,那个叫一,那个叫呃,75,对不对啊75好,就是这样的话允许过去,所以就是他告诉我,你告诉我一个这个偏移量就是off of f set啊off啊举个例子啊,举个例子调用的时候是这位的。
04:43
叫MN啊啊,然后呢,这个地方是使用我们的manin括号,然后呢去调用,调用一下,比如说传零进去啊,零进去就调用第一个是吧,然后呢,For I for I in,我们当前的啊,这个叫run,然后查询剩余的十页就是九页啊九页然后这样的话呢,就是main括号调用,然后调用的时候呢,是off set,等于谁呢?等于我们当前的I去乘以每个页面乘以25,就这样就完事了,对不对,然后呢,每排完一个页面的给我睡一会点SL s lep,因为是这样的,我我们一般情况下就是如果排取的都是带页面的数据的话,就是你排完每个页面,希望各位小伙们呢,稍微停一停,别太着急了,就给别人服务器造成压力啊对,好了,Time,然后SLEEP2啊,这样的话就是每个程序在里边都接受了这么一个off,然后呢,接下来呢,就是定义我们当前的一个请求的URUR就是刚才啊这个位置,大家看到的这个位置啊,来count c复制。
05:31
CTRC复制一下,然后呢,这个这个里边诶,Com command c,然后复制完以后呢,把它这个定义在我们当前的程序当中,程序当中唯独就是这个位置,它是不是始终发生的这个这个这个叫变化,对不对啊,这个变化后面的参数我估计没啥用啊,所以应该是可以把它删掉的,因为它没有任何内容哈,啊这个位置画括号,把我们的o of set,然后呢,传递过来,对传递过来,这是我们当前的这个盘中组工具,完事以后呢,啊,我们呢,就可以去调用,这个叫做调用啊,调用这个位置它是负负责拼装UR,然后调用这个函数进行页面,进行页面页面页面的页面的爬取,爬取,也就是说这个位置再调一个方法啊A,它返回里面叫get,呃,配PA括号,然后把我们的UR传进去就完事了,也就是说这个方法是专门查一个UR的,来CRLC复制一个啊下边呢,去定一个方法叫get get配置啊,然后呢,他给我们一个UR参数,然后呢,我们进在去做一个哈同好,然后那个函数呢,给我们返回这个页面的数据啊,页面的数据返回以后呢,我们在这里边呢,判断一下它是否得到了一个数据啊,H2的结果如果为正确的东西,他得到得到数据以后。
06:31
干什么呢?我们把这个页面哈,负责交给我们的,这个叫做什么呢?教给我们的一个方法就是呃去呃交给这个叫什么,呃。呃,解析啊,交给就是呃,去解析页面数据,解析页面数据,解析页面数据数据的话,到时候我们应该会调用一个方法诶。衣服pass写到这啊这个解析数据的话,会这一个方法叫PA配page好吧,Page然后这样啊这这个时候呢,把al传进去对不对,然后呢,传进去以后还还有就是剩下的呃处理完以后还要判断,判断完以后呢,再开始代码写入数据写入写入数据啊就是整个这样的流程啊,就是大家希望各小伙伴能理解啊,就是以后你写代码的时候,你肯定不能从从头到尾都一行代码就肯定不对,对吧?啊肯定不对啊,所以希望各小伙伴呢,能够把这个写数据的时候啊,写代码的时候组次分明啊组织分明好了,那么现在我们看一下哈这个呃,这个叫解析页面和我们当前的这个叫什么呢?呃,发请求这是不是都要有哈,来请求有了,然后呢,这个是请求页面。
07:29
请求页面数据来发啊,请求叫诶这个位置是请求页面数据页面数据啊,然后呢,下边还有一个就是DF叫做pass黑子,然后呢,他给我们一个A对吧,我们这边做解析,所以它的功能是干什么呢?它的功能是解析页面啊叫解析页面数据页面数据数据,然后呢,最后呢,还有一个,呃,还有一个叫什么呢?还有刚才说的一个叫做。呃,哎呀,我突然就懵了,哦,写入对对对,还有一个写入,来下边这个位置外的写入。
08:00
嗯,来DF定义一下这个位置是写入,哎,Sorry,啊,这个位置啊,来写入数据,你给我一个数据,然后我就帮你写啊,这个位置呢,来这是写入数据,写入数据数据啊,也就是说我们整个程序里边就主要分为了这么几个东西,然后呢,呃,最终实现了我们这个页面啊好来先看第一部分吧,我们在下边已经调用了,调用完成以后呢,它会把这个叫页面的,呃页面给拼接起来,拼接起来以后调用我们的叫get配,Get配置里边非常简单,就是发请求呗,啊发请求,所以呢,上面我们先把这个请求的包导进请求的包的话,Inport em p RP导入我们的request,那么接下来在这个request里边去定义一些内容啊,比如说你当年的请求U2已经定义了,那么接下来呢,要定义请求头就是ses he等于half括号,然后呢,我们看一下前面哪个方法里边定义过。分页数据。嗯,还来随玩复制一个吧,我我懒得再去写了啊来。放到这好吧,啊,这是这个位置就定义了哈,定义好以后接下来呢,就是呃,这个执行执行执行请求啊,就发起请求吧,发起请求请求,发起请求的话,我们这个位置呢,使用的是res,等于我们当前的request是点get向UR发请求,然后把head给它传进去的,我们那么传进去这个请求过滤以后呢,来判断它当前的就是判断响应状态,判判断响应状态,响应啊响应状态,响应状态的话,If判断res.s code的结果,如果等等于200,就证明当前的一个请求是成功的,成功以后呢,我们在位置就给它返回一个res.text,就是这个文本的一个内容,那么如果他请求失败,在这边呢,现一个now就或者是now或者是Bo都可以,当然了,如果你这个页面有没有可能确实上来之后发请求都失败呢,也有可能,所以这个呢,Ttr,然后呢,Try ex except直接全部都括起来,走到这个位置以后,A看一下啊,走到这个位置后,在这个位置呢,判断ex c p ex except,最后呢,在这个位置一个那。
09:51
零了就可以了,就是页面中如果在请求的过程中发生错误,也会是这样的,好,那么他请求过来以后啊,请求过来以后,你给我一个诱饵,然后我把这个页面请求数据下来以后呢,接下来就是呃,通过你把这个叫页面的数据交给我,交给我以后呢,我用我们的这个方法呢,来进行一个处理啊,就是在这个呃叫什么呢?叫到这个位置啊,这个位置调用这个方法进行页面的一个解析数据啊解析数据那么怎么解析呢?这样的,就如说判断一下当前的呃S2返回的结果,如果不归档,那就去调用我们的page啊page run啊,这个叫pass page置啊。
10:22
叫P配置,就是解析这个页面的数据啊,解析页面数据。看一下啊,调用的时候在这个位置,因为我们上面这个看一下啊,在pass这个位置解析我们数据的时候呢,我们可以用很多方法,比如说你用叉pass啊,用我们的这个叫做正则啊,用我们的beautiful都可以啊,这里边我们简单的用一下那个啊,用我们的用我们的叉pass吧,嗯,用我们的这个叫。呃,R叉L,然后呢,Inport form sorry,应该是f roml叉L,然后呢,Port导入我们的E。一翠这个模块导入之后,在我们下面的这个内容当中,我们就可以进行页面的一个解析,啊页面解析的话,使用一。
11:05
呃。使用我们的叉pass解析的话,我们这样做啊,怎么做呢?这个叫HTM,二等于我们当前的叫ET re点商,呃,HTMMR对吧,然后呢,把我们的HT放进去解析结果,解析完结果以后呢,剩下的就是看这个页面的结构,然后获取的对应的数据啊啊所以这个里边呢,我就给大家直接来快速的去说一下我们这个内容应该如何进行一个处理啊,我看一下这个页面的解析。
我来说两句