00:00
OK,同学们,那么接下来啊,要跟大家分享一下关于编解码的一些问题,那这些问题呢,其实在我们爬虫中是非常重要的啊,因为有的时候我们需要带一些参数,大家来看一下,在编解码这儿,我们需要了解三个知识点,第一个get请求方式啊,我们里边有个叫qui一个方法,然后get请求方式呢,还有一个叫URL code这样一个方法,还有一个就是POS请求,在这儿呢,我们会跟大家分享一下百度翻译的一个案例。我还记得,我还记得为啥我们要讲编解码啊,我还记得我们上一个案例,是不是大家假如说同学们来看啊,我们先创建一个文件啊,创建一个文件,然后在这给他改一下名字。这叫啥呀,叫get请求的quit方法啊,Qui方法我记得上一节课我们有个案例啊,这个案例是这样子的,说我如果要检索一下周杰伦,对吧,我把这个网页打开,然后呢,我现在先点一下检查。
01:11
然后点that work来同学们看啊,我在这里边啊,如果输入周杰伦,那同学们看一下,我会找到周杰伦的这一页对吧?这一页大家可以看一眼哈,在这儿后边这一堆我们不都不认识吗?我们可以把它删除掉啊,为啥呢?这些是一些广告什么之类的,大家看一下是不是并没有什么影响啊,对我们整体的一个结果对吧?好,那我们上节课的一个什么东西呢?我是不是把这个路径我给它粘贴到我们的拍charm中,它就变了呀。大家还有印象吗?对吧,我在这儿,我一粘贴,你发现这堆东西它就变成这些了。周杰伦三个字就变成这些东西了,那我说了,我说这个大家认识吗?大家说不认识我我我说了,我说我来告诉你吧,他是啥?他叫周杰伦。
02:08
那这些东西到底是啥呢?那可以给大家扩展一点小内容哈,或点啥呢?就是叫做编码级的演变啊编码级的演变,我记得原来我们在读大学的时候呢,那有一门课程哈,就是叫做计算机基础,那这门课程呢,当时介绍了一下计算机的发展史。那大家知道计算机是谁发明的吗?啊,我我应该有点印象哈,说这个计算机啊,当时有两派,第一派说的是啥呢?是有美国人在宾夕法尼亚大学,由冯诺伊曼然后创建的这样一个这个计算机啊,当时说什么占地多少亩啊等等,多占地多少平方米啊等等等很大对吧?那么其实早期的计算机中,请问同学们它能在里边去输入中文吗?
03:01
能吗?哎,是不可以的啊,所以最早的时候呢,在里边只能输入127个字符。那么这127个字符都包含了啥呢?包含了大写的英文字母大A到小Z,包含了小写的英文字母小A到小Z,还有零到九,还有一些什么啊,逗号啊,句号啊,问号等等等等,这是最早期的哈,我们能在计算机中输入这些东西。啊,它一共加起来是127个,但是我们要知道哈,但这个东西叫啥呢?叫做二克码。啊,二次克码,比如说我们的大A小A啊,它代表的这个阿拉伯数字代表的是啥呢?97,然后大A代表65,零代表48,哎,是这样的啊,大家可以把它记下来啊,可以把它记下来。那么这里边说了,早期的这个计算机是美国人发明的,那如果说我要想录入一个中文,那咋整呢,我们是不是录入不了啊,因为你就127个嘛。
04:11
那后来说了,那你有二克码,那我中国造一个吧,造一个这个编码集是吧,造编码集我叫啥呢?我叫GB2312。但是大家可想而知啊。那全世界其实是有上百种语言的,那你只有一个中国的这个GB232和阿斯柯玛就行吗?说不是的呀,对吧,后来日本把日文编写到shift的JS里,韩国把韩文编写到EUKR里。所有的国家都有自己的语言,所以说叫各个国家有各个国家的语言,那么就不可避免的出现冲突,对吧,最后咋整啊,对吧,结果就是在多语言混合的文本中,就会有啥呢?乱码问题啊,就有乱码问题,因此同学们注意啊,大一统的来了,叫啥呀?叫做unode编码啊,叫unode编码,Unode应运而生,Unode把所有的语言都统一套,统一到一套编码里边了啊,这样呢,就不会有这个问题了啊,这样的话就不会有问题了,而且现在大家知道啊,现代的操作系统和大多数的编程语言中,我们都支持unicode编码,这是一定的。
05:30
那现在我告诉各位同学啊,刚才你粘贴到这儿的东西,它是什么,它是unicode编码啊,Unicode编码啊,大家注意啊,它unicode编码好同学们,那既然咱们讲到这儿啊,接下来呢,我们就要给大家说一下啥呢,我现在要获取。这个网页的源码。啊,我要获取这个网页的源码就是它了,那也就是说我是不是要把它复制过来,然后在这里边访问一下就行了呢。
06:03
对吧,各位,哎,现在我们就来试试啊,假如说现在我的需求写上我的需求是获取现在这个地址,大家注意啊,它是什么叫周杰伦。的网页源码,因为我获取源码之后,我才能干啥呀,找到里边部分的数据吧,假如说我想要他的影视作品啊影视作品,那么现在呀,我们要获取他王月帽咋整来着,是不是先写一个URL对吧?URL然后等于啥呢?等于这个地址。啊,等于这个地址,然后接下来我们要用啥,是不是要模拟浏览器去访问呢?是吧,同学们说在这儿呢,我们基基本上哈,会把导入的这个数据放到最上边,Import URL lab.request好同学们,那我这个完事之后,我接下来要干啥呀,是不是要叫做模拟浏览器向服务器发送请求,同学们这句话咋写来着?
07:17
然后告诉我是不是response等于URL lab.request.url open。对吧,我来传递一个啥呢?URL,但是有同学说了,老师啊,你这个浏览器啊,是不是一个假浏览器啊,是的,所以说在这里边同学们,你还记得我们上节课那个案例吗?叫叫叫什么来着。是不是叫请求对象定制啊,对吧,请求对象定制,那么怎么做请求对象定制了呢?而且我还要跟大家说一下啊,请求对象定制的存在是为了解决啥,是为了解决我们这个什么反扒的第一种手段UA。
08:02
那请求对象定制,对象的定制啊,是为了解决我们解决反扒的第一种手段。啊,这个爬不要打错啊,爬虫的爬反扒第一种手段,那么在这里边我先写一个hier,好,我随便去找个UA,那在这呢,我们右键检查。紧接着刷新一下,哎,找到第一个,当然你找到其他也行哈,但只是啥呢?我们知道第一个是什么,是我们想要的这个。这个网址那在这儿你可以看呢,是不是你想要的是它呀,因为点别的它都是图片对不对,你只有点它的时候,它才是你想要的数据,这个后续呢,我们一点一点的带大家来找接口,嗯,好,我们在这儿来找一下它的UA。然后把它放到这里边,然后因为我们知道啊,它是一个字典,所以说在这要给它加一个字符串,否则会报错的啊,OK,同学们,Hier来了,Hier来之后,我接下来说了hier,因为URL open中它不允许去传递这个字典形式的数据,所以在这儿他给我们做了一件事,就叫请求对象定制啊,请求对象的定制,OK,那么写上request等于your lab。
09:35
点什么request,点大的request,那千万注意啊,里边写上URL等于ul,有同学我再解释一遍啊,再解释一遍,同学们一定要记清楚,正常来讲,它的第二个参数是date,而不是hi得斯,所以说你在这儿如果要直接。写这个参数就报错了,因为啥呢?你整懵了,人家第二个要的是date,你给他一个head,那能行了,所以说我们这要干啥呀,要指定它的关键字变量啊,我们在之前讲过对吧?所以在这的吧,写个request,好,模拟览器向复习方请求OK了,那么紧接着干啥呀?同学们,我紧接着是不是要获取这个响应的内容啊,对吧?哎,获取相应的内容,那么是啥?Content等于response.read.decode然后写上一个UTF杠八,对吧?各位好,紧接着在这儿打印数据。
10:42
那打印数据,那么直接print来写一个content OK,那么我们来看一下啊,这样可不可以呢?对不对,你要注意啊,同学们,我这里边的主题讲的是叫quiet方法,我没用上呢,那我们来看一下走你我发现报错了,报啥错了,说ask斯克码啊,不能编码字符啥意思呢?已经超过了这个120 127是吧,对吧,但是这里边写的范围128,它取的127啊,这后续我们再说。
11:16
也就是说他这里边儿啊,周杰伦默认情况下呀,他只检索谁二次克码。二次玛一一百二十七个,它哪有周杰伦这仨字啊,对不对,我们要把它变成什么UNO的面码,所以说你要识别谁呀,你要识别它,那我把它拿过来看一下,看一下啊来右键走你。嗯,我们发现是不是可以了呀,对吧,是可以了,哪找一下周杰伦三个字啊,走走走走看有没有。嗯,那滑一滑,滑一滑,哎,你看。这个周杰伦等等等等对不对,所以说这个网页啊,我们就获取到了,但有同学说老师啊老师对吧,你这个里边你要查周杰伦,你查别人那不就不行了吗?假如说想查毛不易。
12:09
那你还得写个啥呀,写个他吗?我告诉各位啊,不需要,所以说在这儿我们就讲了我们的第一个什么钙的请求方是啥,这里边有个叫qui方法,这个que的方法,它的作用是啥呢?它就是将我们的汉字变成我们的UNO的编码,所以说在这里边我们用一下啥这快的方法,在这儿呢,大家注意啊,我先把这个给它删掉啊,先把它给删掉,那接下来我们要做啥呢?就把周杰伦这三个字是不是要变成unode编码啊。对吧,各位,所以在这里边,那我们应该咋写呢?对吧,我们应该和谁去写呢?大家注意啊,在这写,因为你最后要给他个URL嘛,那这里边我要写个啥呢?假如说写一个这个name吧,我们先测试一下啊,等于大家注意啊,接下来我要用的这个东西,我先给你写上一个注释啊,要将将周杰伦三个字变成啥,变成unicode编码的格式。
13:27
对吧,那这个我们怎么做呢?同学们注意啊,我们需要依赖于叫做URL lib下边的一个叫pass的一个东西,那你看跟这个是不是类似的,那既然你想用它,我就得导入它,导入的时候我记住啊,跟同学们说了啊,一般情况下我们是放到上面去导入的pass。啊,Pass you are li.pass那他咋做呢?在这这么做说name啊,等于you are li.pass点叫qui,这里边你可以给他传一个周杰伦的三个字,同学们啊,同学们,在这儿我直接打印一下这个name,看一下他会不会这么做呢?我先把这个注释一下。
14:17
会不会把周杰伦这三个字变成对应的unicode编码呢?来,右键走,你发现同学们我们来对一下A6B ce4b09D对不对?各位,哎,所以说这句话就能干什么呢?同学们注意啊,这句话就能将汉字变成对应的unicode编码,那既然这个unicode编码有了,我是不是就可以和它去怎么的,是不是去拼接一下呀,同学们,所以说此时的URL。此时的URL应该就等于谁URL加上name对吧,各位,那在这我打印一下啊,打印一下来print URL,我看他变没变成我们想要的那个字符串啊,来运行一下走你我发现了点它。
15:17
好,同学们是不是过来了,所以说此时的URL啊,就是我们想要的那个URL,你无论变成周杰伦还是毛不易,还是谁谁谁,你只要给我数值,我是不是全都可以了,各位,哎,对吧。OK,我们现在运行一下它。来看一下结果。哎,往上找找找找往上滑,这个还东西还挺多的是吧,滑滑滑找到周杰伦藏,诶在这呢。有是不是还是周杰伦,所以这样的话呢,我们是不是就把这个数据获取到了呀,所以说各位哈,这个是我们啥,我们在编解码中第一个说的东西就是get请求方式的一个quit方法,那我同学老师啥叫get请求方式呢?大家看这里啊,看这里,那在这它有一个请求的方式method,是不是一个get呀,对吧,大家诶这个呢,稍后我们会和post做一个对比啊,做一个对比,好同学们,以上就是我们关于get请求方式的一个quite方法的一个讲解,我把视频暂停一下。
我来说两句