00:00
OK,同学们,那么接下来我们要讲一个这个叫做请求对象的定制啊,请求对象定制,那么对于这个东西呢,其实这个概念是比较抽象的啊好,同学们,那我们先创建一个文件啊,先创建一个文件。然后我们来说明一下这个问题啊,是到056,然后到哪儿了呢?到请求对象的定制,在讲这个之前呢,同学们啊,我要先干啥呢?我要先给大家造一个错误啊,通过这个错误呢,我们来引出两个知识点,第一个我们还是要用它啊,所以要导入它,导入它之后呢,在这我定个URL,大家注意啊,这个URL和我之前写的百度的地址稍微的有点不太一样。它不一样在哪儿呢?同学们,你看原来我是不是写的叫做HTTP,然后3W点百度点com,对吧,大家,而接下来我要写的是啥呢?叫HTPS啊,3W点百度点com OK,那有可能就会有同学就会问了,老师他俩有啥区别呀,他俩不就多了个S吗?多了个S就有很大区别吗?是的,所以说在这儿我接下来要先讲的第一个知识点就叫啥呀,说URL的组成啊,URL的组成,其实URL组成呢,大概有六部分啊,假如什么六部分呢,我们来看一个啊,第一个就叫做协议。
01:35
所谓的协议指的就是我们说的啥呢?HTTP或者HTPS。啊,就是他俩这协议,那么他们两个有啥区别呢?我告诉各位同学啊,它加了一个叫做SSL的东西,它更加安全。啊,更加安全,这个呢,稍后我们随着爬虫的课程的加深,我们一点点来解释HTPS协议完之后,第二个我们指的叫主机,所谓的主机其实际上就是它指我们的一个什么呢?域名啊,主机地址。
02:16
紧接着还有什么呢?叫做端口号,有同学老师我也没写过端口号啊,对吧,但是大家可以小小的扩展一下,说端口号这个玩意儿,HTTP是多少呢?断号是80HTTPS,它的断号是443,然后如果说大家你未来还要学一些其他的东西呢,假如说Mexico啊,3306对吧,Oracle。ORACLE1521,哎,然后还有一个什么这个呃,Mango DB等等的RED6379。这个后期我们会用啊,还有mango db27017啊这些啊,大家简单记一下就行,暂时先记他俩啊,稍后再说,那么我们如果使用的是HTTP,那么它端口号你写或者不写它都在那啊,如果你要是HTPS,那它就443端口号,紧接着下边还有啥呢,有一些路径。
03:23
啊,这几个啊,路径还有啥呢?还有一些参数啊,还有一些锚点,哎,一共是有六个东西组成,但是后边这个呢,暂时我们都看不到,我们只能看到它啊,只能看到它这是ul的一个组成啊,U的一个组成,那么说什么叫路径呢?同学们我们看一下啊。假如说在这儿啊,我们在里边输入一个啥呢?输一个周杰伦对吧,周杰伦这里边儿注意啊,这个S就是一个路径,我们假如说把这个复制一下啊,把这个复制一下啊,把这个复制一下,然后给它粘贴到这里啊,HTTP叫做协议,百度叫做主机地址S就是啥呀,路径,我把它写在这S。
04:15
参数呢,就是问号后边的数据。啊,就是假如说写的是WD啊,等于周杰伦,有的老师这不是周杰伦的,我告诉你那就是周杰伦啊,我们下个案例再讲啊,周杰伦我把它换一下啊。这就是周杰伦。啊,这是周杰伦,OK,同学们还有一个东西就是锚点,锚点现在一般用在哪儿呢?用在我们的百度检索那儿啊,它就是代表一个景啊,稍后呢,我们再去说明它。这是URL啊,所以大家不要暂时有什么误会,说老师啊,为啥你之前写HTTP,在这写HTTPS呢?那么我告诉各位啊,我就是为了造一个错误,那咋造错误呢?我这把呀,很简单,我还是要访问百度,还是要获取它的源码,所以说这个大家有点印象就行啊,所以说接下来我要咋写呀,叫response,等于URL lab.request.url open对吧?来打开这个页面。
05:21
那这个玩意儿之后呢,我们要干啥?要获取它的网页源码啊,对吧,等于谁呀?哎,等于这个这个这个这个叫做response.read咱们同学说了,我再来个抵扣的吧,U杠八来我们在这直接打印一下content,我们来看一下啊同学们这行不行呢?来右键走你。可以,但是你有没有发现这个东西好像不多呀,怎么就这点儿啊,啊,同学们怎么就这点儿啊,大家注意啊,之所以这个少的原因是因为什么?我们遇到了一个反扒。
06:04
啥叫反扒呢?大家举个例子啊,这个咱们呢,上大学的时候,寝室都应该有一个比较逗的人,而我们寝室比较逗的那个人就是我们大哥啊,马大哥,那么我们马大哥假如说他比较爱好啥呢?爱好搞对象。跟这个一个女生表白了,说这个,呃,这个钢带啊啊,我喜欢你。那这钢带一看,哎呀,你长得也太丑了,也太磕碜了,我不喜欢你,那也就是说,OK,大家看啊,我大哥想爬取这个钢带的这些信息,但是。钢蛋说了,嗯,你太黑了,我不喜欢你对吧,所以说在这儿呢,他就遇到了反扒,所以因为钢带啊还很礼貌对吧,说嗯,你是个好人对吧?诶,我就没有给他这个数据返回,那这是啥原因呢?也就是说我大哥在访问他的时候,他的数据不够完整。
07:04
白点就好了嘛,所以说我大哥在干啥呀,再去伪装一下自己,擦点这个粉底液什么等等等等乱七八糟的对不对呀,所以说大家注意啊,之所以现在给你返回的数据不完整的原因,那么是因为啥呀?因为你的数据,你给他的数据不够完整,不够优秀,这是我们遇到的第一个反扒。而这第一个反扒是啥呢?就叫做user agent啊,User agent,那么我们来看一下,说user agent简称UA啊,中文名叫啥呢?叫做用户代理,它是一个特殊的字符串头,使服务器能够识别客户使用的什么操作系统啊,版本啊,CPU啊,浏览器版本,浏览器内核,浏览器渲染引擎等等等等,也就是说UA这个里边啊包含了什么?包含了你的操作系统以及浏览器版本一些信息。
08:06
那现在因为你写的是爬虫程序啊。你在这里边能知道你是啥浏览器吗?你根本就不知道对不对,所以说现在诶,我要我大哥要干啥呢,要伪装一下,那你朋友说老师啊,你这UA哪来呀,我告诉大家一下,UA无时无刻都在在这儿啊,我们怎么找,当然了,你可以百度一下UA呀,也行,百度一下UA大全也可以,但是我们你看看一下UA大全。有大学你是不是可以全都找到啊,这随便就各个有PC端的,什么火狐啊,Sari啊,什么chome啊,遨游啊,腾讯TT等等的,有很多世界之窗对吧,很多很多对吧?而我们要干啥呢?我们要找自己的UA,要展真正的UA啊,但是你用他那也好使,咋咋咋找呢,在这鼠标右键。然后点一个啥呢检查。
09:00
点一个检查,点完检查之后,大家注意啊,在这别着急,你要点击什么呢?你要点击network啊,一个网络工作点开之后大家也别着急,这没有UA啊,你别慌,你刷新一下页面。啊,刷页面你要看一下,看一下谁呢?这里边儿啊,有第一个这个不就是你的接口吗?你的域名吗?我点一下它,点一下它之后,现在在hier里边,Hier里边啊,别在别的地方,Hier里边你往下滑滑滑到最后你看在这儿是不是有个UA,而这个东西能标识着你的啥呀,你的操作系统。标识WIN10啊,看到了吧。WIN10啊,能标识你的浏览器版本OME92点什么04515.159等等的信息,那么我要把这个UA复制一下。啊,复制一下,复制一下之后我要干啥呢?我给它粘贴到这里边儿。
10:04
那有同学老师你这都能用吗?啊,告诉大家不能用哈,它是一个什么类型的数据啊,大家看啊,它是不是有个冒号,是不是特别像我们的字典类型的数据啊。对不对啊,所以说在这我们要咋写呀,我要给它放在一个字典里边,写个名吧,叫has啊,放在一个字典里边,把它粘过来,那字典的前边的东西,后边的东西,我们是不是都应该用一个字符串啊,我们之前学的呀,对吧?哎,给它放里边。放里边OK了,好,嗯,用单引号吧,都用单引号啊,好,同学们,我就把它放在一个字典里边了,因为我们知道带冒号的不都是字典吗?所以我把它放在一个字典里边,那这个字典有完之后咋整啊,那也就是说现在注意啊,同学们,你把这个haz放里边,那是不是就是请求的时候带了这个UA呢?
11:03
行不行呢?那同学们我得看一下啊,我告诉大家啊,不可以,那为啥不可以呢?我们来运行一下走报错了,为啥报错呢?同学们你要注意啊,因为URL open来我们把它点进去啊,现在把鼠标光标放在这儿。按下CTRL键,鼠标左键点击它,那你就能看到它这里边儿的源码。这里边儿有没有关于字典的这么一个字眼啊,这不参数吗?有没有关于字典的字眼啊。有吗?是不是没有看到啊,没有看到的话咋整呢?大家看下边这句话,说打开个URL啊,你可以放一个字符串,也可以放一个什么叫做request,一个object,是不是一个request对象啊同学们。那蕊快对象咋整呢?
12:00
对吧,这个应该怎么办呢?同学们注意啊,这个时候我就需要啥呢,叫做请求对象的定制。啥意思,你现在呀,因为写上一个小注释啊,因为URL open方法中啊,不能存储啥呀,不能存储字典,所以hi不能传入传递进去啊传递进去。那么怎么办?我们就请求对象定制,怎么定制呢?同学们注意啊,还是u lab,它定制一个request对象,咱们刚才不看到源码了吗?是不是可以放到一个request对象啊,在这了。在这了,是不是可以放一个request对象,所以在这里边request等于啥URL lab.request点记住同学们啊,叫大写的R,大写的request在里边我们既然定制,我们想定制一个啥。
13:12
首先我的URL要传递过去,我的啥hi德斯也传递过去,哎,我将路径和他的一些你需要的参数我都传过去了,啥意思?我大哥跟这个刚钢蛋表白,原来我大哥只身犯闲呢,他自己去了,但是钢带先我大哥,嘿,那咋办呢?我大哥就伪装伪装吧,诶,把他伪装成一个整体再去干啥呀,发送给钢带。那么刚才说哎呀,嗯,小伙不错,还挺白,那行吧,我就同意了吧,我们来看同没同意,哎,同学们怎么报错了呢?但是还有个小问题啊,啥错误啊,你应该传的是request,我们这也没有任何的问题啊。
14:04
对吧,还有一个什么错呢,我们再看一下,这边我们来观察错误,这个错误是啥呢?说的很不明显呢,对吧,各位我们挪挪挪是不是27行啊,还是谁呀,还是他错误,那这个错误又是因为啥呢。对吧,我们之前不都写的是这个URL和hi吗。那它有啥问题呢?同学们注意啊,看我URL等于ul his等于his对吧?那我们现在再来运行一下它走,你看是不是就可以了,各位对不对啊,所以在这里边你要知道的是,如果你看啊,你的单词有没有可能写错,如果没有写能写错的话,注意啊。你要干什么,你要给它加一个这么变量,哎,你得加上前面有个变量的名字就OK了。
15:01
啊,因为啥呢,你看一下这里边第一个是ul,第二个是不是date,第三个才是。第三个才head,如果你在里边直接写ul了,对不起,他把你这个head当成什么了,当成date了,人家是按照顺序你才可以这么去传递的。啊,而你是不是直接写值了,这个有个注意啊,注意因为参数顺序的问题啊,因为参数顺序问题,不能直接写URL和。是啊,为啥呢?中间还有一个date对吧,还有一个date,所以我们需要啥呀,需要关键字全参,这个我们在Python基础的时候讲过啊,我们在ython基础的时候讲过,所以说大家注意啊,这就是我们现在学爬虫遇到的第一个反扒杀反扒UA反扒啊,UA反它识别不了你是真正的浏览器,所以在这儿呢,我指定下,但这里边用到啥呀,叫做请求对象呢,定制给他伪装一下啊,我有hier,但是写的时候还要注意啊,好,同学们,以上就是我们请求对象的定制,我把视频暂停一下。
我来说两句