00:00
OK,同学们,那么接下来啊,我们就开始做案例了啊,一做案例我们就比较高兴是吧,那接下来做一个什么案例呢,同学们。来,我们来一个啥呢?用杰森pass来解析啊,解析啥呢?解析淘票票啊解析淘票票OK,那这个解析淘票表,我们是不是得把数据拿过来之后保存在本地我们再解析呀,对吧?各位,我们要啥呢?我们就要这里边的数据,其他啥也不要,那在这儿呢,大家注意啊,重新刷新,然后呢,我们来抓一下接口从头来啊,无论将来淘票票这个网站如何去改,我们都能拿到这些城市,对吧?好,同学们,我们来看啊,走走好,就是这个接口了,就是这个接口了,这个接口我们来看一下啊,它会不会有一些反扒,这个是我们不确定的,这个每个人的想法是不是都不一样啊,对吧?各位各位,所以在这呢。
01:00
这是他的一个请求地址啊,这是他一个请求地址,我把这个请求地址先在这复制一下,然后粘贴看有没有给,诶,他是没有给我们东西对吧,那为啥没有给我们东西呢?那就是有可能他的请求头是不是应该有一些数据的一个限制啊,哎,所以说我们就这个一点点来一点点想是吧,来写上you are la.request。啊,点request,然后紧接着现在定一个ul等于谁呀?等于它这么长,嗯,等于它之后我是不是要写个请求头啊,对吧?Head等于它这个请求头里边注意啊,同学们咱说了,当我直接放在浏览器的地址栏中访问的时候,它是没有给我们数据的,所以这个时候我就得猜到底这哪些东西给我们做了一个限制。我就先干啥呀,把它全拿过来啊,全拿过来它不应该是不仅仅会校验UA啊,应该不仅仅只会校验UA,然后把它拿过来创建一个新的文件,给它干啥呀,给它来格式一下啊,格式化一下。
02:08
正则表达式啊,然后来OK,然后全部替换好啊,这样比较方便一点啊,Ctrl a ctrl c,然后现在呢,我把它粘贴过来,粘贴过来之后大家要注意有几个点是需要我们注意的。大家注意啊,前边带冒号的都不能用,一会儿它会报错的啊,我先来试试啊,首先我请求对象定制一下,前边带冒号都不能用啊,等于UR li.request点大的request URL等于URL headers等于headers。嗯,完事了,完事之后呢,接下来我是不是要干啥呀,要模拟浏览器向服务器发送请求啊,对吧?诶等于啥呀,等于your li.request.url open里边是不是传request对吧,各位,然后最后呢,有一个啥呢?有一个响应啊response.read.decode,然后来写上UTF杠八,我们来打印一下它啊嗯,来打印它。
03:15
看一下啊,同学们这行不行,走嗯,发现报错了,说啥错了一个无效的头的名字叫什么冒号author什么什么之类的是吧,哎,就把它干掉,我再来运行一下冒号method还不行。看到了吗?各位,哎,所以说在这里边大家要注意啊,带冒号的请求头一般情况下是不好使的。啊,带冒号的行头一般是不好使的,我们挨个把它干掉,嗯,走,这把又报阿斯克码了,我说过哈,同学们,这里边阿斯克码的原因是啥呢?因为默认情况下请求头它只支持GDP def flight和BR,而这个呢,是我们在爬虫中千万要注意的,要把它给注释掉啊,要注释掉来再来运行。
04:03
走。好同学们,我们是不是就拿到数据了呀,对吧?诶这一堆数据,这个是他做了一个小小的反扒啊,小的反扒,但是这个数据呢,并不是我们想要的,为啥呢?大家你可以看一下啊,这组数据我把它复制一下。啊,这有点多,复制一下啊。有点大,我双击一下啊,好复制复制之后啊,我把它在接森中打开一下啊,这个有个接森点CN,我在这里边儿呢,把这个字符串给它打开,你发现它报错了,为什么呢?就是因为他在上边有这么一个东西。叫啥呢?叫JNP138啊,JP138,而这个原工号我们是不要的啊,它不是一个J森注串里边的内容啊,他一个还有谁呀。还有下边这个内容,诶,这个员工号结尾不要了,这个时候才是真正的杰森数据,大家理解吗?当然呢,现在也有很多技术能解决J森P去识别JSP,但我们现在不需要去了解它,因为我们需要我们使用的是啥呀?是J森pass啊,好,同学们,那我怎么才能把这个杰森P给它干掉呢?大家注意啊,看。
05:24
怎么弄呢?看啊,第一个我要通过content等重新附个值啊,也就content是咋的content.litt它是干啥的呢?假如说它以圆括号左圆括号做切割啊,这lit是切割的意思啊,是切割咱们之前应该知道是吧,字串的一个切割,切割之后我来打印一下这个content啊,我们得经过两次切割才能完成。来切割走,你看是不是前边这个就被切了对吧,就后边的一大串对吧,各位,但是后边的一大串还有一个啥,是不是还有一个括号呢?所以说大家注意啊,我切完之后我取我取这个列表中的第二个元素对吧?第二个元素之后,前面那个是不是就没了,只剩后边这个了,但是后边这个还剩一个啥,同学们是不是还剩一个这个圆括号啊,所以说大家要注意,我再切一次点lit,我通过谁切呢?我又通过右边的圆块切一下,切完之后我们再运行。
06:41
啊,你发现又是两个数据,这个第二个数据是不是就剩一个啥了,剩一个这个分号了,那我再取啥呢?我是不是在取第零个,那它就是一个啥了,是一个我们想要的阶森数据了,大家看明白了吗?各位,哎,在这儿呢,我们不做过多的解释,对杰森P啊,这先不不去考虑它,OK,同学们,那么这个数据啊,我们就有了,那因为这个接3.pass的特殊性,只能识别啥呀,它只能识别本地的文件,所以在这儿呢,我要干啥,我要给它保存一下。
07:21
啊,叫做啥呀,叫做这个淘票票是吧,嗯,起个一样的名吧,给它复制一下。啊,复制一下诶它点记住啊,后缀得写上杰森,然后我们要干啥,是不是给他写上啊写完之后呢,我们是不是要指定一下编码啊,指定一下编码,万一中文它不好使呢,是不是来utf-8IS FP,然后紧接着LP.right来写上一下谁呀content,那么同学们我们看一下会不会生成这样一个文件呢?文件中会不会有内容呢?我们来看一下走。
08:01
嗯,好嘞,我们看有没有阶层文件,有阶层文件里边有没有数据呢?有,那么我们ctrl alt加L给他排个版,同学们,这个是不是就是我们要的杰森文件呢?OK吧,各位,诶,但是这里边我们只想要什么呀?同学们,我们是不是只想要这里边的叫region name,这个region name是不是就是我们的啥呀,我们想要的数据呀?哎,那这里边应该咋来呢?对吧,那是不是可以,你就写这个啥杰森帕语法呗,就是read name呗,那这个很简单是吧,那同学们我们来看一眼接下来咋写,因为要使用杰森pass,所以说我要导入一下这个杰森吧,啊杰森,你第一个要导入杰森吧,因为通过杰森加这文加载这个文件呢,还有就是杰森pass吧,这两个,那第一个呢,我们写一个OB勾,等于杰森点load。
09:01
对吧,别写错啊,这个漏我们要加载的是谁呀。加载式文件吧,对吧,那这个文件我们应该咋写呀。啊同学们,你直可以直接写吗?假如说写这个谁呀,这个文件来咱们看一下可以可不可以直接写,诶sorry啊可不可以直接写,那么我们在这来干啥?来给粘贴一下。对吧,然后呢,我们接下来注意啊,注意接下来干啥呀,是不是要写语法了呀,那这里边我们要CT下划线,例子等于杰森pass点杰森pass,那第一个还是OB勾,第二个这个路径写的是Dollar符点点。大家注意啊,可不可以直接写do,点点read name啊,这不就O了吗?然后现在来打印一下c list来看啊走嗯,报错了啥呀,注册不能读,他要读的是什么?同学们是不是要读的是一个文件,这是很多同学在最开始的时候可能会有的这样一个问题啊,他不是读的字符串,而要读的文件,所以在这里边不要懒惰,要写的是啥呀?哎,写的是文件啊,要读它,然后进来再来个encoding,等于utf杠八就OK了啊同学们,那么现在我们再来运行一下,你发现是不是所有的城市我全拿到了呢?
10:31
啊,有没有你的家乡啊,对吧,所以大家要注意啊,像这种解析方式,咱们同学一定要会啊,一定要会,OK同学们以上呢,就是我们使用杰森pass来解析淘票票网站,我把视频暂停一下。
我来说两句