00:00
Hello,各位小伙伴,欢迎大家回到学习原地啊,那么在前面的课程当中呢,已经给大家去讲解了一些关于这个request库的一个基本使用啊,我们如何发起一些get请求啊,以及我们常用的这个数据解析的手段,那么包括这个用叉pass啊,BFSO啊以及正则对吧?那么也就是在讲解的过程中呢,也大家去呃爬取的一些网站,然后做了一些简单的案例啊啊,那么从这一章节开始呢,我们在讲解一些啊关于实战应用方面的一些内容,包括像代理啊,然后多多进程和线程啊,包括这个比如说如何用这个request子发这个poose的限流对不对等等非常多的一些实战应用,希望各位小伙伴呢,在这个学习的过程当中,能够这个学到更多的内容,并且呢,多去做一些练习好,那么这这样的话,这节课我们现在大家来看一个东西啊,就大家一定用过这个翻译工具啊,比如说我们找一下一个叫有道啊,这个置啊叫翻译点有道。会看我啊,当然你用百度也OK啊,百度也OK,那么有道翻译呢,有一个在线翻译这样的一个网站页面,然后在这位呢,就是说他可以帮你完成的是自动的这个。
01:01
啊,自动的这个就是你输入一个内容,然后帮你完成翻译,比如说你好啊举个例子,我们在这里入一个你好啊,那么然后呢,他帮我们翻译啊翻译成哈,对不对啊,那么这个翻译的过程大家来注意看一下啊,在翻译时这个网站并没有页面并没有刷新,也就说是这样的哈,来我们在这里啊先刷新一下啊看这的,那我在这里输入你好你好,然后之后呢,它就出来这个内容页面是没有刷新的,也就是说整个浏览器并没有跳转,没有跳转的原因是什么呢?是因为它当前使用了一个叫前端的叫阿贾克技术,然后呢,呃,捕获到你在这个叫翻译框内啊输入的一些内容,然后把这个内容呢啊转转发到了这个叫呃有道的后台服务器。有到后台服务器呢,根据这样的一个呃,接收到的这个信息,然后把一些内容给你翻译好之后再进行返回,中间的这个过程使用的是前端的技术,叫阿列克斯来帮我们完成了,也就是说我们是看不到的啊,这是一个前端啊,非常呃前端中非常好的一个应用技术啊,可以提高用户的一些体验啊,比如说不刷新就可以得到一些内容,对吧?好,那么接下来我们看一下啊,就像这样的一个东西,我们应该如何爬取到内容啊,那并且呢,我们完成自己的一个啊,这个翻译的一个内容啊,首先的话我们来啊,用呃这个鼠点击你的鼠标键啊,这个叫。
02:09
有一个检查,或者是你摁一下F32,找到这个我们浏览器当中的这个调试工具啊,然后点开这个network,然后呢,进行刷新啊,先刷新一下来network当中会看到你当前所有发出去的请求啊,所有发出请求啊,然后在这个位置啊,在这个位置输入你好。然后大注意看,请发一些他内容,他内容较HR叉HR就是专门获取阿贾克斯请求的啊,因为叉叉HR代表是。叫叉mrhtb request这样的一个请求对象,那么这个请求对象呢,就是我们前端的GS中的阿点克斯的请求对象,好,这个时候我们把它点开啊,来看一下,也就说我在这个地方哈,再输入一个你,呃,你好事件事件啊,你好事件好,那么注意啊,每当我在这个输入框的内容发生改变的时候,它就会发起一个请求啊,发一个请求就会向这个地址发请求,那么我们来注意看一下啊,这个请求中返回的,你看输入的,我们输入的是你好设点,然后它返回的是不是就hard对不对,也就是说它正好返回了一个接省格式的字点,那么这个字典当中啊,就是我们啊,有我们想要的这个内容对不对?好,我们想办法来提取这样的一个格式,就完成了一个翻译的功能。那么。
03:17
我们现在哈,就是知道它是如何发请求,那么接下来就是我们自己如何去做这样的一个请求,就是用我们的pyon程序如何实现,那么在你点开这个请求之后呢,这边位置啊,这是返回的内容直接解析了哈,然后这边有一个head,就可以看他当前的请求头,那么这里边分别出现了response head和request head哈,啊,那我们这个时候呢,你可以看这个request head,或者是看第一个,第一个里边呢,就明确的告诉你他当前请求的UR地址是哪一个看这啊对,然后呢,第二个就是他发送的请求格式是post。啊,是以POS的方式发送你请求,然后它响应的内容是什么呢?啊,在response里面有响应内容,它响应内容是一个阶层格式的数据啊,相应的内容是,而且你可以看到有到这个服务器,它用的什么呢?用的是NEX啊,NEX服务器是常规的web服务器的一个架构的一个啊专业的HTP服务器啊,包括N,这还有HTB,以及包括那个叫阿帕奇啊,包括我们像Windows里边还有is啊等等,非常多啊,非常多,当然了这个返回的结果也不一定为准,因为服务器中间可以做很多层的这个架构啊,然后可以去伪装这个信息啊,可以就是详详细也可以发,呃呃,伪装这些内容就像我们的爬虫可以伪装浏览器一样,好,那么接下来就是在这个过程当中,它发送一些数据啊,我们来看一下方里边发送什么东西啊。
04:26
来发送一个II就是你输入的这个文本内容,然后放form,就是凹凸,然后to auto,也就是说是这样的,它帮你自动监测,就是帮你自动完成这个翻译啊,然后呢,什么字典啊呀等等啊,非常多的信息,对不对?好,接下来我们来看一下我们自己如何完成这样的一个翻译的功能操作,那么首先我们已经知道了啊,我们要以这个例子发送请求,并且是POS的请求,那么接下来我们看一下啊,来把这个例子复制一下,然后呢,打开我们的这个课件,我们今天新创建一个新的脚本。诶,呃,在这里右键创建一个新的脚本啊,这是我们今天的啊第一个啊第一个啊,第一个我们叫它这个盘虫实战爬虫实战啊实战实战啊实战我们的有道啊有道翻译啊,或者叫爬进阶吧,啊进阶啊,我们的有道有道翻译啊,诶这个有道我还拼出来啊,没事一会我把它改一下啊来看一下这位的嗯。
05:23
有道翻译,然后首先啊,看一下我们请求的这个地址啊,诶没有复制过来吗?来右键啊,Copy这里啊,这是我们请求的地址啊,然后下边告诉你啊,你请求的方式是post啊方式发送这个叫请求啊请求诶我把这个直接这俩诶全部给你做出来,他们他信啊放到这好,那么有了这两个信息以后啊,接下来就是还要你你还有一个就是你要发送的数据啊,发送的数据大家可以看一下它这里边发送的好处啊对不对,什么IM,什么to啊啊,然后还有什么东西对不对,然后返回的内容格式对不对啊,这个位置是不是有一个返回的内容格式啊等等,还有非常多啊,非常多,那么我们这个地方呢,可不可以就是少发一点啊,少发一点,因为不确定啊,我们可以测试一下能不能少发一点,也就是说至少你要有这样的一个数据格式啊,就是你要呃发送date请求的时候,注意你要发送date的数据啊,数据包啊,那我们这个位置怎么做呢?啊,首先第一个第一个啊是一个诶诶。
06:13
啊,这个位置输入一个啊,就它有一个有一个这个键,然后对应是入的这个内容啊,然后呢,啊需要翻译需要翻译的内容内容啊,然后呢,还有一个。还有一个数据啊,就是叫做叫什么呢?叫做doc,它叫做C小啊doc叫什么?呃,Doc啊,PE啊,刚才我们看到的这个就是doc啊,那么这个是回到这个数据我们格式馈啊,因为我们在在前面的程当中已经给介绍过,就是我们这个如何如何去这个呃,进行这个阶层数据的一个存储啊处理啊,已经给大家讲过啊,啊不熟悉的小伙伴呢,可以这个翻往前翻一翻啊,或者说这个你你来这个网上随便看一看啊,简单看一下这个监省格式数据是怎么样的,好吧,好,那么接下来我们是这样的哈,现在我们要分析一下我们当前如何发起这样的一个请求,首先第一步我们要引入我们的这个request啊,Import,我们当前的re re。
07:10
QS,然后第二步呢,我们需要什么呢?啊,需要这个去定义请求的U,请求的方式,包括请求啊这些信息是不是好这样的话呢,我们在这里啊啊今天呢,我们在这里呢,简单做一个封装啊,一个函数的封装,函数的封装,用函数做一个封装啊来看一下DF叫们括号啊这个里面呢,需要一个参数啊,就是你要给我一个关联者啊KWRD啊啊是这样,我们这样我们先简单的来发一个请求,看能不能成功,成功以后我们再来做一个封诺吧,好吧,啊所以这个我们先定义UR啊,UR就是上面一个请求的地址,来CTRLC把它复制一下,放到下面这个位置来啊,不要动这个地址啊,就是你在你抓过来的那个数据地址是什么,你就在在这里呢,就用什么方式啊呃,然后呢,就是抓包工具的话,我们现在因为直接用的是浏览器啊,有浏览器的这个network啊,借助的浏览器开发工具来帮我们抓包,然后呢,你还可以装啊,装一些专业的抓包工具,比如说filter了等等这些抓包工具啊,你可以网上搜索一下啊,在这个课程当中,我就简单的不去做那个介绍了啊,来看一下这个位置,就是定义这个叫定义请求的请求的URLR对不对。
08:10
好,然后接下来呢,我们来看一下啊,就是我其他形式形式不定义的情况下,能不能啊,这个叫啊还有一个叫定义请求,还有一个请求参数是吧?啊定义叫定义请求的参数,请求的参数啊望各位伙伴应该对这个get和poose呢,应该有所了解啊,如果你不清楚的话啊,如果你不清楚话,我希望各位伙伴呢,先把这个内容先好好了解一下get和POS的区别啊来啊,这个位置do c啊C,然后这个位置呢,就是要求他返回技子格式好了,这是我们当年的定义请求数据,然后第三步啊叫发起请求,发起请求那么之前的情况下我们都是,哎来之前的话,我们都是发起一个再次请求,对不对,所以这一次呢,我们看一下啊,如何发起一个POS的请求,也非常简单,所以注意RS等于我们当前的request,这个请,呃,这个这,然后调用它的一个叫方法。你看这边有告诉你啊,你要给他这个叫什么,给他这个U,然后给他这个叫date数据,对,然后后边什么keyword啊等其他内容啊,我们这里给两个参数,第一个URL等于我们的UR啊,其实直接定一个参数就UR就可以了,然后第二个呢,就是我们的date啊,这么给也可以,我们指定date等于我们的date,好吧,来指定一下哈,那么接下来发起请求以后来后面干什么呢?哎,发送请求之后回来就是解析啊,就是就是查看查看请求结果,请求结果然后呢解,后面呢就是解析数据,解析数据啊,那么数据啊,我们得先来看一下我们当前的这个请求结果是怎么样的啊,我们当前有一个方法就是查看这个请求的状态,就是叫res.ste的结果,如果是200的话,我们就能够看到我们当前的这个叫请求状态是OK的啊,如果他的请求状态我们这里做判断。
09:51
直接做判断,如果它当前的扣的结果等等于200,那么证明请求成功,成功以后呢,我们就开始再去解决数据,那么解析数据的话,我们应该怎么做呢?我们想要提取它的内容,对这样好,那这里这个地方呢,我们先普看一下啊,我们以前提取的内容都是用res点上什么来点上我们的这个叫做connect connect啊然后呢,这样的话来获取这个返回的数据,对不对?好,那我们来测试一下啊,看一下有没有问题啊,来回顾一下,上面是导包,然后呢,定义请求到UR,然后定义请求参数,发起POS请求,查看结果啊查看结果,然后解析数据,好,右键我们来测试一下,看能不能运行成功走。
10:24
啊好,200OK error扣的50上面的位置200OK,就是请求成功了啊,但是它返回来一个什么,返回来一个叫error code的50 error扣50,我看一下哪个地方有问题。嗯,错了。我们当前这个过程当中,请求是发出去的。呃,然后。结果变成了一个error扣的50,就是他这个地方报了一个错误,也就是说我在这个,呃,在这个地方发请求的时候,他返他返回的就是他这个状态是成功的,但是返回的结果是一个error扣的。诶,一般你看他这个返回的L扣的是一个零哈,是一个零五十的话就证明有错,我看一下是哪里有问题啊,当然我们当前这个请求里边并没有没有加什么请求头啊,其他信息都没做啊,都没做啊,其实也挺危险的,因为你明确的就告诉别人你当前的请求是是吧,嗯,是。
11:16
呃,是一个叫什么。呃,是是这个Python爬虫发起的一个情状啊,来我们呃看一下有没有有没有这个小伙伴遇到过这种类似的问题啊,这个时候怎么办呢?就是百度点com啊,其实你不去找也行,你就是测试一下呗,对吧,来看一下啊有道有道有道翻译翻译,然后呢,错误错误错误。码这个啊,50看一下啊,一般这样向上的话,它都有一个你看啊,有其他小就遇到过啊,来看一下这格式。复制粘贴吧。嗯,各位到的到网式定义挺多啊,然后呢,看一下。
12:05
这是没?时间戳,然后验证。啊。嗯。就说现在它已经更改了哈,现在跟以前不一样了,这个时候需要需要什么,需要这个你看的对,有很多啊,很多都遇到的问题啊,然后呢,将将在审查元素中获得UR后面的杠零去掉,所有消失可以正常排序,也就是说这个参数后边哪里有杠零。啊,这个位置啊,这个位置杠杠来右键运行一下,看那还诶还是50啊看一下有道翻译,然后。Re,没错。想一下。
13:00
啊,第二个要么就是你更改一个地址。Small。我们这个里边差在哪了。Sorry,我改位置改右键。好了,各位小伙伴看一下吧,数据已经正常了啊,数据已经正常看你你只要你过的东西基本上就这样,绝大多数你过的一些常规网站,比较知名的网站的话,我各位网上各位小伙伴都爬过,只要是比如说啊,我遇到这个问题,第一次遇到是吧,然后呢,你应该如何去解决,你不用着急,你可以第一个先检查一下你的程序逻辑上有没有问题,没有问题的话,那么去看一下别人有没有遇到过类似的问题,然后看一下他们这其实爬虫第一个就是你掌握基本的方法,第二个问题就是经验啊,第二个就是经验啊,好了,我们现在已经搞定了,就是把这个请求参数给去掉就行了,也就是说他会做一些参数的验证,然后现在把它去掉就OK了,好,那么现在注意看啊。我们现在的请求状态是200,然后呢,这个结果请求回来之后,它是一个什么东西,注意看注看这个前面有个B证明它是一个什么二进制的数据,然后呢,你可以把这个内通什么呀,通过我们的内容啊,通过我们的这个叫做呃UF8进行一个解析对不对,但是呢,注意哈,注意我们的Python,呃这个叫request库,还给你提供了另外一个方法,就是直接解析监程数据的,所以呢,由于它反馈接省啊,也所以你可以RS点直接接省方法,然后呢,右键运行看一下,好不是来看后边这个结果,这个结果就直接变成了一个直接变成了我们想要的一个接省格式数据啊对,这可以直接啊直接获取,如果返回的,如果返回到返回的是接省g son数据,接省数据可以直接解析,直接解析好,这个非常方便啊,非常方便好了,那现在的话呢,解析了这个接省的数据,那么从这个过程当中,我们就可以判断以这个error code的的结果来判断它的这个内容是否正确啊,是否正确来。
14:41
把这个我看一下啊,他复制一下,然后把这行注释掉,然后重新写一个啊date date等于我们当前的返回数据啊res啊res别给我们上面冲突了,Re,就是我们返回的这个数据啊res date点杰啊,然后获取这个结构以后呢,我们要从这个结构当中啊re,呃,这个if判断一下,判断一下res date啊date这个中括号它里边呢,叫error e code的Co de,它的结果如果等等于零,等等于零,证明我们当前的结果是不是成功了啊,就是请求成功啊,就是这是请求成功这个地方啊哎,请求成功成功的话,我们这个地方怎么做呢?来这里做一个print啊的话,就是直接把这个叫啊,直接把这个内容给反拿出来就行了,就如果成功我们就读取这个内容,读取内容是这个参数。
15:28
列表啊。看一下啊,中括号零,然后还得在中号零,然后在中括号找到它的TT是吧,TT我不知道它是什么意思啊,反正就是它翻译结果我们通过方式来获。再设计一下来右键走,你看这来看这hello喽啊,你输入的是你好,然后翻译结果是hello对不对啊,那这样的话,我们这个程序是不是就完事了啊,就完事了啊啊这就是就是做有道翻译的啊,有道翻译的这个耗S的引流的一个基本操作,那么接下来各位小伙伴这个请求如果你看明白了之后啊,那么接下来给大家安排一个任务什么呢?就是我们要求的是用我们的拍摄程序啊,自己做一个翻译,也就是说啊,借助这个有道啊,然后做一个翻译,怎么做呢?就是呃,你运行脚本以后呢,程序会让用户输入一个内容,输入这个,比如说需要翻译内容,输入完以后呢,你去把这个内容获取到,然后发送给你到翻译,然后翻译回来的结果给他反馈啊,适当的一个过程啊,大家来考虑一下应该如何去完成啊,这个啊,这节课的内容简单给大家讲那么多,主要还是啊提了一下POS牛,Post牛,一般来讲都是要有这个这接数据的,这数据也别忘了带就可以了啊。嗯,其实request这个库发get和发post都非常方便啊,当然了,我们拍当中还有另外一个就是拍ython自带的一个库叫UR lab啊UR lab只不过那个库呢,操作起来,呃,我个人觉得没有request库比较好用啊,而且绝大多数常用的时候还都是用request库,所以呢,就那个库呢,我就没提。
16:54
如果各位小伙伴感兴趣的话,可以直接到咱们Python官网啊,然后呢去做一个了解好了,那么这节课呢,关于我们request这个库中的POS剪流做有道翻译啊,简单给大家讲讲这么多,那么下节课呢,我们来完成一下刚才我所说的这个案例如何去啊,把它这个做一个叫什么。
17:10
啊,做一个封装啊,做一个封装好了,下节课我们再见。
我来说两句