00:07
然后我是本节课的授课老师,我叫自由,然后这节课的话给大家带来懂车帝的一个二手车数据采集所了,使用一个环境的话是P3010的解析编辑器的话用拍恰,呃,模块的话爬虫我们模块的话用的requests和CSV啊,然后做可视化的话,我们主要使用的是一个pandas和PYXS的一个模块,好吧。OK啊嗯,然后的话,我们这边呃,主要做的话是这里啊,就是关于这些呃什么一些车辆的一些信息啊,对吧的基本的信息我们给他拿下来就行了,好吧。啊,那大家之前有没有写过爬虫来写过爬虫的扣个1啊,没写过的话扣个0啊。了解一下大家的一个基础情况啊,很久没有啊,问大家的一个水平了,来写过爬虫的扣1啊,没有写过的啊,扣个0。了解一下大概的一个情况。看一看有多少同学是有基础的?
01:02
好吧,那就是没基础吧,对不对,大多数还是没有基础的啊,没关系啊。啊,那么爬虫怎么去做呢?按照。那爬虫实现的一个基本流程啊,那我们既然有很多同学都是0基础,那我们就先讲讲思路啊,讲思路爬虫实现的基本流程。啊,这流程分为两步啊,第一个的话是数据来源分析。打数据来源分析里面的话,2个小点明确需求。和我们的一个抓包分析。明确需求的话,它就是明确采集的网站和我们的数据内容,就是你要知道,对啊,你要去做马虫的话,你肯定要知道你要采集哪个网站上面的什么数据嘛,是不是明确采集的网站以及数据啊。网址的话已经给大家发了啊,就关于我们懂车帝的一个二手车数据信息。大数据的话就是呃,测量信息吧。车辆信息啊,网址。
02:00
就这个。OK.那么第二步抓包分析,那我们确定了网址和他的一个数据之后的话,第2步抓包啊,抓包的话就通过浏览器的开发者工具。浏览器的开发者工具。分析对应的数据位置。基本的话三个步骤啊,第一步打开。开发的工具。第二步,刷新网页,第三步,通过关键字搜索找到对应的一个数据位置。啊,主要是让我们想要,其实呃,归根结底的话就是干嘛呢,让我们需要的数据啊,让我们需要数据呃,在网页中啊,网页中加载出来。然后干嘛呢?然后分析它具体的所在的位置,分析请求哪个链接就是呃,数据在哪个链接中存在啊,其实核心的话就这这么一点东西啊,打开的话我们直接F12就可以了啊,F12不行的话,你可以右键。那我们右键的话可以点检查啊,点击检查然后选择什么呢?网络啊放大一点。
03:05
诶,这里太大了啊,选择网络。OK.这样子吧,啊,这样的话应该看的清楚啊,啊先打开我们这个开发者工具啊,然后这里的话,呃,你可以刷新,但我不建议刷新,然后我们说了第二步的话是,呃,做一个什么呢?刷新网页啊,但是可以刷新,但是我不建议啊,不建议啊,因为记住啊,如果说我们做爬虫的话,当我们看到数据,它是有这种翻页的一个情况啊,像这种有有页码嘛,123456789啊,一共有一百一百七十,一百六七页,对不对,它有很多页啊,如果说像这种情况的话,我们要采集这个列表页面上面的数据内容,呃,不推荐大家刷新。直接点击第二页就好了啊,直接点击第二页,因为像我们这个的话,主要是让它的数据加载出来,我们可以直接加载第二页的数据,如果说它是那种下滑加载更多的话,我们可以去可以下滑啊下滑让它加载更多的数据,如果说是点击搜索啊,出来数据的话,那么点搜索那就尽可能的话不用刷新啊,因为刷新的话会有很多的一些数据会干扰到我们。
04:05
的会比较多,因为像有些网站的话,你直接点了翻页之后的话,呃,能够更快的啊,根本就不需要搜,但我们第3步的话是通过关联字搜嘛,就有些网站你点了第二页之后的话是不需要搜的啊,那我们这里啊给他清空啊清空清空。结果我们点了第二页。OK啊,点了订阅的话,它还是有很多啊,对吧,还是有很多的一些数据内容啊,像这种的话,呃,比较多的,我们是没有办法直接看出来的,就没有办法一眼说我就知道这个数据在什么地方啊,当然如果说你有经验的话,也能够看得出来,对,就比如说哎,老师对吧?啊,作为老师的话,还是多少有点经验的,那我就知道他的数据是在呃这个位置。啊,这里的话就是它的一个数据内容。看到没有啊,我们想要的一个车辆的一些信息数据啊,就在这里。对啊,如果说你不知道的话,那怎么办呢?就按照我们常规的去搜就行了。打去搜啊,你比如说啊,我们点击这里一个搜索按钮,搜什么呢?关键字搜索啊,就是你需要什么你就搜什么。
05:00
关键字搜,需要什么就搜什么,我需要他这个标题吗?那必须啊,肯定得是需要的嘛,是吧,那么直接就搜啊小鹏。打P15啊P5,然后有空格对不对,你加空格不加空格无所谓啊,一定要加,但是要加啊,如果说你只只只有这只说这前面这一段的话也可以。可以不用搜完啊,就是我们这个关联证书,我要把这个标题整个的全部搜搜搜索的话可以吗?呃,可以,但也不推荐啊,因为有些网站的话,可能说你全部搜的话反而会找不到,我们就复制当中的,用当中的一部分就行了啊,一部分就可以了,那我们直接输入这个小鹏P5啊,然后回车。回车之后的话,诶,他就会告诉我们,我们所需要的这个数据在什么地方,那这个的话就是我们的标题,那我们是不是可以点进去看一下。啊,点进去的话,我们是不是就能够看到,诶,我们想要的这个数据信息是不是在这里。懂了吗?那他的一个城市一些基本的数据是不是就有了,对吧,知道我们的数据在这个地方之后的话,并且我们也看到我们想要的数据在这个列表里面啊不对,在这个字典里面花括号包括起来的,对吧,那我们就看什么看标图。
06:05
看标头,知道数据在这里,有了之后看标头。看标头看什么,看他的网址方法,还有他的一个请求参数。那就看这几个东西就行了啊,其他东西的话,你可以不用管了啊,暂时就可以不用管了,暂时啊暂时。大家了解它的一个请求链接是哪个啊,方法是什么啊,方法是一个POS请求的话,那我们肯定还要看一下载荷啊,还要看一下载荷,因为载荷里面的话啊,对于POS请求我们需要提交一个什么表单数据。啊,需要加一个表单数据的,懂了吧,好,那这个的话就是我们的一个。数据包地址。那通过我们基本的一个去分析啊,数据包地址的话就是它。明白了没有?啊,这是我们第一步啊,去做数据来源分析,分析我们想要的车辆信息在哪个链接里面,那我们是不是找到就在这个链接里面。找到链接之后的话,那我们就可以去对于这个链接去发送请求了,就写我们的代码了吗。那就是第二个步骤,代码实现的步骤。
07:01
代码实现步骤的话,分为我们的4步啊,分为4步,哪4步呢?第一个发送请求。第二个获取数据,第三个解析数据。第4个,保存数据。啊,发送请求的话,呃,它就是模拟浏览器,对于我们的ul地址。模拟浏览器啊。对于我们的URL地址发送请求啊,我们先做这一步啊,对,我们先把整个每一步给大家讲讲一下啊,发送请求的话,那我们就怎么去写代码呢,我们知道整个的一个数据的一个流程啊,我们先做自己第一步啊发送请求。他既然是模拟浏览器。打模拟浏览器啊,那我们啊肯定也要做一个模拟伪装吧。打模拟浏览器。请求网址还有呢,发送请求啊,这3个点肯定要的。模拟浏览器的话,我们主要是使用的什么呢?使用的是我们的一个请求头啊,请求头的一个参数用字点接收。
08:02
用一个字典去接收它就可以了,像什么cookie啊,什么啊,什么reform啊,上面什么UA啊,对吧,我们就直接给它复制过来啊,在这个标图里面去复制就行了啊,像它的一个cookie。是不是,然后像他的一个防盗链啊,瑞风防盗链啊,像它的一个UA对不对啊,那我们的话,嗯,我先只加一个UA吧,算了,把cookie加上啊。然后cookie也加上好吧,我不知道,呃,加UV的话也行啊,可能也行,如果说不够的话,你再加其他的,那我们自己加2个吧。把他的cookie和UA都加上。那cookie给他复制过来。还有呢,我们的UA的话,我们也给他复制过来啊。复制粘贴一下。那就构建成我们这种字典的一个形式就行了,给它复制过来,然后粘立上,然后构建我们的一个引号啊,加上相应的引号就好了,好吧,构建这种字典的一个形式啊,那我们的网址的话,就是刚刚抓包找到的链接对不对,我们是对于哪个网址就这个。
09:01
对于这个网址去请求的,那我们直接给他复制过来。啊,这是我们的网址啊,网址的话我们去发送请求,我们知道啊,它是一个POS的请求。我们已经知道它是个POS请求了,那么发送请求的话,首先啊,第一个我们要导入一个数据请求模块。啊,首先导入数据请求的一个模块,Request先导入进来,导入进来之后的话,它的请求方法是一个post,那我们在代码里面也用这个post请求。那POS请求的话,我们需要向服务器提交一个表单数据,你可以理解为它是一个请求参数。啊,所以我们在前面的话还要干嘛呢,加一个请求的一个参数啊,就是我们的表单数据啊。表单数据啊,在我们的一个什么载荷中啊,可以查看。在载荷中里面有,我们给它复制过来,也用一个字典去接收。啊,用个字典把它这个什么呢,表单数据直接给他复制过来。
10:00
然后粘贴上去,加上我们的一个引号。啊,引号。还有呢,我们的逗号啊,也给他讲一讲。哎,这样的话就可以了,然后再把相应的参数传进去啊ul,那请求的网址是哪一个呢?诶就这一个网址,就是我们这个ul,那我们的一个什么呢?呃,对吧,那这里全部。对吧,我们的一个呃,模拟的请求图是哪一个对吧,传进来,然后我们的一个参数是哪一个传进来,都传进来,再用一个什么变量名接收response,对这个的话就是我们发送请求的一个基本的代码内容了。啊,这这个代码的话有没有疑问想问的。啊,这这几行代码的话,有哪行代码是需要问的吗?啊,从我们的这个23行到我们的一个39行有没有。啊,对于哪一行代码不懂的话,你可以直接把代码行数说出来,没有问题的话就扣个6,或者说刷个鲜花。啊,这个的话就是我们的一个发送请求啊,然后第二步获取数据。获取数据的话,它就是获取服务器返回的响应数据啊。
11:06
返回的响应数据啊,拿到就是我们这里面的一个响应啊,就把这个响应给它拿到好吧,然后我们获取它这里的话,它是一个什么呢?那你可以看到它是这种花括包括起来的,就我们的数据的话,都在这个花括里面,你可以这样子啊,你不给它格式化啊。那你就可以看到我们的数据的话,都在这个花框里面对不对,那像这种的话,我们就可以直接获取他的一个。节省数据。啊,获取他的一个什么呢,节省的一个数据。获取相应的节省数据。那么杰森德塔等于一个什么?Response, 点上一个杰森来printer打印一下。啊,这样的话,我们就可以拿到它相关的一个结果了。
12:02
结果是不是有了?对不对,这个的话就是我们相应的一个结果啊,结果有了之后的话,它我们获取的这个节省的话,它返回的是一个什么呢?是个字典啊,是个字点,那我们现在想要的数据是在哪个里面,在这个字典当中的data里面的一个什么呢?这个什么摄取啊,什么in list.啊,在这个列表里面,在这个列表里面的话,它一共有多少条呢?0到我们的一个。这么多0~59,就相当于60条的一个数据信息啊,都在这里面,60条的一个车辆信息啊,都在这个呃列表里面啊,所以说我们首先啊,首先根据自检取值提取我们车辆信息所在的一个列表。啊,先把这个列表给它取出来啊,就是哪个就这个列表,我们直接用这个边的名。这点取值怎么去做呢?根据冒号左边的内容去提取冒号右边的,我们最开始的话,对它是从这个data里面来,你不要说老师你根据冒号左边取,冒号右边我直接取这个行不行。
13:01
你直接这样子写的话,他会报错的。啊,它会报错的,为什么呢?因为我们得先取得这塔,它返回这边内容,然后我们再能取它,所以说我们得一层一层往上去啊,得一层层取。啊,一层层去先取它返回冒号右边的,啊,冒号右边的话,我们再取这个in for list, 然后再返回这个列表。啊,这样的话我们才能拿到什么呢?拿到我们所需要的这一个列表数据,看到没有,那这个的话就是我们的列表了。对不对,拿到列表之后的话,诶,我们接下来做一个什么呢?负循环。病历提取列表里面的元素。啊,For我们的一个什么好index in我们的一个这个什么社区啊。这个in啊。那我们再打印一下这个index。OK, 那这样的话,他的相关车辆信息。就出来了。简单吧,其实做爬虫的话就是这么简单啊,就是这么点东西啊,基本的思路,基本的流程就是这么去做的。
14:02
你只要按照我们刚刚写的这个步骤来啊。啊,解析数据的话,就提取我们想要的数据内容。来给你们写一下。写下笔记啊。提取我们。需要的数据。那么现在已经提取到了一部分了啊,对吧?啊,这边的话就相当于解析数据了。现在我们是提取到了,呃,它每一个车辆的一个什么呢?它的一个字典啊,字典拿到了,但这字典里面的话有很多一些额外的一些参数啊,像什么这个呃SKUID啊,这个什么super ID啊,这些东西,还有card的ID啊,啊这种东西都都感觉不是我们想要的啊,还有卡name啊,卡name的话,这个可能我们要的打卡name的话,这个的话应该是它的一个呃车辆的类型啊类型。啊,像这种的话,呃,我们啊看起来不是特别方便,因为你要这样去取值的话,呃,我们要左右滑动啊,像这种左右滑动的话,我们看起来不是特别舒服是不是啊,那我们可以干嘛呢?啊,我们可以导入一个格式化输出的模块,我也想让它变成像这种的一个形式。
15:08
啊,这样的形式我们会看起来更舒服一些。好,我们来打印一下。导入一个格式化。输出的一个模块。服用我们的一个pement import pet.啊,用这个模块去打印啊,用我们这个批去打印。来我们用一个break啊,跳出我们的循环就打印一个就行了啊,因为我们去解析数据的话,不用打印那么多啊,就打印一个就好了。OK啊。啊,打印出来之后的话,我们接下来我们看一看要什么数据啊,要要的数据的话,我们给他取一取啊,给他提取一下啊。呃,这个是小鹏汽车。小鹏P5250。那我第一条甲壳虫呢?我第一条不是甲壳虫吗?啊,他这里可能已经更新了啊,我来看一下他他这里的话,可能第一条数据已经更新了啊。
16:04
他现在现在那个甲壳虫可能已经没有了。打你看到没有,他那个甲壳虫估计已经卖出去了。已经卖了,已经卖了吗?这么快吗?就瞄了一眼就不见了那个数据啊,那现在已经变成小鹏P5了。那我们第一条数据的话,就变成这个小鹏P5了,OK啊。啊,真快,我也觉得好快啊,是不是前面有车已经卖过了,然后他啊自动排名往上提了。那么来提取啊,提取具体的一个数据,保存到一个字典中。咱们用一个dit字典去接收,像我面的标题,我们需要给它取一下的index,那它标题就哪个,就是这个title头啊,这个的话就是它的一个标题。把它的标题我们给他拿过来,呃,还有什么呢?呃,还有它的一个呃年份嘛,对吧,它的年份还有他的一个品牌啊品牌我们也拿一下品牌。打品牌的话就是小鹏嘛,小鹏汽车嘛。对,这是它的一个品牌啊,小鹏汽车。
17:01
是不是,然后还有呢,嗯,它的一个款式吧,这个P,呃,55550P的话,应该是它的款式啊。啊,它是哪一款的对不对。啊,还有什么呢,它的一个城市。城市的话有好几个武汉的,我们就直接拿一个吧,拿这个吧,好吧。因为武汉的话也挺多的。嗯,那我们还有什么呢啊,它的年份二二年的啊,他的一个车辆的年份二二年。啊,年份,这是车辆年份。他有购买的年份吗?好像没有购买的年份啊,只有这种啊,这种年份啊,还有它的一个价格,这个是它的原价。是它的一个原价啊,原价是20.29万,然后它的。公里数。啊,这公里数啊,公里数在这里啊,这是它的一个公里数啊里程。对,现价的话是我们的一个9.8万。
18:00
啊,现在的一个售价。啊,售价的话是我们的一个9.98万,然后还有它的一个里程啊,里程我们也拿一拿。啊,里程公里数嘛。公里数我们取出来之后的话,它它是有两个的啊,它中间有一个呃,Split分割对不对,那我们啊,不以以这个这里的话有一个竖线,我们给它分割一下,用split给它分割一下。我们给它复制过来。啊分割啊,这个分割的话就相当于什么呢?啊举个例子啊,我们现在的话不是不是这个吗?我们取到的数据不是这个样子吗?他点上一个split分割,就相当于把我们这个什么呢?把我们这个字符串给它分割成一个列表,就变成这样子的一个列表,前面的话就是我们的2022年。后面的一个元素的话,就是我们0.40万公里。啊,它就是这样子的,对不对,那我们现在它分割成我们列表之后的话,我们要的值是哪个,要的值是后面这个值对吧?最后的这个值,最后的这个值的话,我们可以根据列表,所以位置取值取什么呢?取负一,那负一的话就表示取的是最后一个,取的是最后一个。
19:14
Oko.嗯,那还有什么数据吗。然后基本的话就这些东西啊。对不对,呃,还有一个什么呢?嗯,过户的次数,我不知道是哪一个是过户次数啊,这个因为都是0啊。因为它上面写的都是0啊,我不知道哪一个是过户的次数啊。是平台类型。我们找一个吧,我们找一个,呃,不是零次的过户啊,我们来看一看啊,啊这个自由光的话,它不是。他是过户了一次的,过户了一次的。
20:01
我们来看一看啊。你看这里啊。他是第几条数据啊,1234啊。啊,算了,那过户次数不要了,行不行,那过户次数不要了。因为我看不看不看不出来,他哪个是过户的次数啊,我们搜一下。那呃,这个是过户次数吧,应该是看一下。啊,这个的话可能是过户的一个次数啊转移对吧,那这个的话就是过户啊,那有了就给他拿一下啊过户。OK.啊,基本的话我们就这些数据了,好像没有其他的,还有其他数据要拿的吗?没有了吧。大家没有了啊,然后它有一个检测报告,但是这个是个logo啊,这是个图片啊,但是不是它的一个具体的一个报告的链接啊,这个也是个图片。
21:08
对吧,是他那个封面的一个图片。啊,封面图片,如果说你们需要的话,你也可以把它取一下啊,给它取一下啊,这是我们正常的一个数据的一个获取,来我们打印一下这个DAT啊,看一下我们整体的一个数据拿到的一个情况是什么样子的。来我们运行一下。OK.发现问题了吗?啊,虽然说我们已经也拿到了相关的一些数据啊,拿到了相相应的一些东西啊,但是的话,大家有没有发现一个问题啊。啊,里面发现一个问题。他这些东西是个什么玩意儿?啊,这是个什么玩意儿?看到了吗?自杀。替换掉,替换掉。这个替换掉,你怎么替换。
22:00
啊,这怎么这怎么替换,我想问一下这怎么替换,你说替换掉这怎么替换。啊,这这这咋替换。替换掉是不对的啊,这个替换掉的话是不对的啊,为什么它会有一个这种情况存在呢?这个的话其实是属于一个。有同学知道了吗?转码吧,这这也不是转码,这也不是转码。嗯,转码你怎么转,那我们给他复制一份啊,你要你要说转码的话,我给你找一个UI的一个编码。啊,你要怎么转。那你要你要转吗?那这个要转中文他是吗?那他中文是这个样子的。那这是他转出来的一个效果。但是转出来一个效果。那unicode转中文啊,转出来的这个样子。是吧,你还你还看其他的吗?那这个转中文你看他他转不了,他不是的,那这个呢,解码呢,哎,他也不是的。对不对。啊,不是加密啊,不是加密那是什么。
23:01
不是加密,那是什么?这个的话就是加密啊,它就是加密啊,它属于什么呢?属于字体加密。啊,它是自体加密。懂了吗?啊,这个的话就是我们所说的一个字体加密啊。怎么去解决呢?啊,怎么去解决呢?来我们看一下啊,就他这种数据的话啊,其实我们,呃,我我可以这样子给你看,我给你这样看啊,你看啊,啊仔细看啊,我我不知道我手速快不快啊。啊,手速不够快,我刷新一下吧。哎,我这里不能F5啊。诶,手速慢了。他怎么没出来啊?哎,你你们,哎这怎么我刷新他没有啊。啊啊OK啊这个啊,就这个。看到没有啊,手速还是比较快的。那就这种方框啊,像这种方框的这种啊,像这种的话,它其实是一个字体加密啊,这个的话是一个字体加密啊字体加密。
24:09
啊,自己加密,就他给给我们的数据啊,就像这里面他给我们的数据的话,它并不是一个什么呢,并不是一个完整的一个数据内容,他有些有你看这个价格,他这里的话,你看它其实直接是一个空的啊,直接是一个空的,它其实就是一个方框,但你通过这个元素面板去看的话,它也是一个方框。啊,我们通过这个元素面板,我们看价格有没有。那价格也是啊,那。看到没,它就是一个这种的一个方框的一个情况啊,就是一个空白的,其实就是一个方框,那像这种怎么去解决啊啊,既然它字体加密的话,首先啊。我给你们演示看一下,演示看一个东西啊。字体加密的话,首先我们去找一下他的字体文件啊,他自己字体文件也挺多的,其实都可以啊,都可以啊,都都行啊都行,我把这个字体复制过来啊。给你们看一下,把这个字体文件下载下来。
25:03
下载一下它的这个字体文件,这个字体文件的话,需要得用专门的一个,呃,专门的一个软件进行打开啊,然后你没有这个软件的话,你可以去找我们的一个木子老师要。好吧,没有这个软件的话,你们可以自己加木子老师要啊。咱们打开一下这个字体文件。打开一下。那。哇,它是这个样子的啊,它是这种的。啊,就是它对应的字体的话,它是有一个什么呢?有个码点,我们就拿数字来举例吧,因为其他的太多了,就拿数字来举例啊。那这个的话,它是它的一个什么呢?码点。啊,这下面的话是它的一个数字上面的话,这个是它的码点啊,它是它是个码点,那我们现在的话,我们所看到的是一个什么样子呢?啊是这种样子,我们来啊运行一下啊。运行一下啊,它的一个原价对不对,我们把原价的话啊,原价的话我们给大家,呃,来啊,这是它的一个原价啊,原价的话我做一个简单的操作啊,我们给它复循环一下for I in, 我们的一个什么呢。
26:11
用这个。然后我们print打印。还打印一个什么呢OD。哎。OK啊,你看啊,这个的话是对应的什么呢。565846758425584675846158378OK来找那58467的话是哪一个。是这个吧。大家看到啊,58467是不是他。58467啊,58425是哪一个,58425。5845是不是0。对了,是不是0。然后点的话是46啊,点的话它这里有加密码。
27:00
看他这个点有有有做处理吗?啊,这个点的话没有做处理啊。美术处理的话不用管他。OK啊,那我们的话58467是多少。啊,我不知道467还是个二还是个二。对,还是个2,然后的话461呢,461。啊,46149。然后的话还有一个58378。58378。373737373737。啊,三七八是个哦,啊三七八是个是个是个那个啊三七八的话是个圆。对,三七八的话是因为它的价格的话是多少多少元啊,多少多少钱,对它后面的话一个单位啊,这个378的话是个单位对吧,就是万啊啊就是万啊,不是元是万,万的话是多少,这里万的话,因为字体不不是很好找啊,打这个字体不是特别好找,我就不找了啊。因为我我想给你们看的那一个。但是我们知道前面这个啊,所以这个价格的话是20.29万对应的能能对应的上吗。我们那个第二页。
28:02
第二页,这是第2页的数据啊,我这个是第三页的。啊,明白了吗?懂了没有?看到没有对吧,它其实就是有一个映射的一个规则啊,就是它有一个映射的规则。懂了吗?那上面的话就是属于他的一个,呃,这个的话就是它的码点,那上面这个东西的话就是它的码点啊,这个的话就是它的码点下面对应的一个数字就一一对应的,像我们把这里取出来之后的话,我们只要把这个规则给它构建出来就好了啊,把这个规则给它进行一个构建,构建就可以了啊构建的话啊,这个的话就是需要使用到什么呢?实际到我们的一个识别。那这里的话就不用不用你们去弄了,不用你们去弄了,好吧,这边有现成的代码就不用你们去弄了啊,如果说你要去再给你们把这个识别的东西给你们讲一遍的话,就有点麻烦啊,有点麻烦。可以把这个规则直接给大家构建出来啊。我们。呃,有一个什么,有个代码。那有个代码。啊,有个这个代码。好吧,这个代码的话就可以直接干嘛呢,对于我们的一个呃,字体文件啊,进行一个识别处理啊,进行识别处理,把它的一个规则给它映射出来,那我们刚刚下载好的那个字体文件,我们给他拿过来,我们粘贴进来啊。
29:14
哎,我这里之前是不是有一个。有了之后可以给他删了。然后把这字体文件我先给他删了啊。哎,刚刚那个嘞。Country c country v.嗯。点好,他来我们运行一下,我们把这个规则构建一下,把这个规则给它构建出来。啊,给它构建出来。等他运行一下。啊,一个是数字的一个unicode嘛,一个是我们16进制的一个n coding啊unding。好吧,这个的话就是它的一个规则。
30:00
哇,这个的话就是它的一个映射规则啊,我们可以把这个映射规则直接拿过来啊。哇,他这个音色规则我给你拿过来。放哪里放这里。啊,我们来一个放。点塔。啊,这个的话就是它的一个映射规则啊。打这场映射规则。啊,我们现在要做的是什么呢?那我们现在要做的话,是不是把它这里面的每一个东西给他进行一个什么替换吧。对,我是不是给他进行替换。好吧,呃,我们,呃给他替换一下啊,替换的话,我们这里定义一个函数啊,定义一个函数df change.啊,定一个函数啊,替换我们的一个什么。呃,构建我们的一个映加密啊,字体的一个映射规则。的替换。那我们这边的话就传一个什么,传一个字体进来啊,传一个字啊,传一个字,我们用个key接收给他传进来,把我们内容传进来之后的话,我们给它做一个负循环啊,For我们的I in我们的一个key啊in这个K就相当于我们给它遍历出来嘛。
31:10
对不对,我们就相当于把这个数字给它遍历出来啊,遍历出来,遍历出来之后的话,我们怎么去做呢。并列出来之后的话,我们是不是要给它替换成什么呢?替换成我们的那种,呃。这这这种形式就是这种有这种麻点的。咱们再运行一下。啊,替换成这个样子了,对不对啊,这个的话我们就是用那个OID啊OID,那我们来给他写一下,那么这个I的话就是什么呢?OID.取这个I啊,取I之后的话,它这里是整数啊,我们也给它转成整数吧,它这里应该不用转啊,它的话应该就是个整数啊,应该就是个整数啊,就不用转了,然后根据什么呢?根据字典的键取它的一个值。啊,根据它这个词,然后我们取取它的内容就行了,那么放着。
32:04
对它啊,取它取出来,把它的这个数字啊,把这个把这个字给它取出来,取出来之后的话,我们用个什么word去接收啊,Word接收。对不对,然后的话,前面这里的话,我们用的什么STR啊行。嗯。等一个空的啊,等于空的啊,我们做一个简单处理啊。啊,但这里会报错啊,这里的话,如果说你直接这样用的话,会报错的。啊,这样用的话,呃,会有一个,呃有有会有一个报错啊。呃,不能这么写啊,这样写的话会报错的,为什么会报错呢?我给大家演示一下啊。我我给你们演示一下啊。我来调用一下这个函数,我们是哪一个是原价吧。打它原价里面是有加密的,我们把这个原价给他调用一下这个函数啊。
33:06
好吧。那我们再运行它会报错的啊,他会报错的。啊,他会报错报什么呢?报没有这个K啊,没有这个键的一个错误,我们刚刚是说过它那个点是没有的。对,他那个点是没有加密的啊,它那个点号是没有加密的,如果说加密的话,他可能会去,那像这种怎么办呢?因为他有些是加密的,有些是没有加密的,对不对,所以我们要在这里的话做一个异常补货啊,给他简单的异常补货一下,就如果说有加密的话,我们就进行一个处理,没有加密的话啊。那么的一个word就直接等于I。啊,直接等于2,然后每次的话,我们的一个呃,STR啊。A等于个。啊,这样的话就可以了。啊,这样的话可以了,你看这个价格是不是出来了。打这个我们原价的一个价格是不是出来了。那售价呢,同样嘛,售价里程,那售价里程这些数据的话,我们是不是同样的方法啊,这一块我们就不打印了啊啊我们我们的售价啊,售价的话,我们也给他拿一下。
34:11
来运行。打售价是不是就OK了?啊售价原价售价,诶里程它又是好的了。这个里程有些是又是好的了,这个里程我不是没弄吗?这个里程我不是还没弄吗?还没弄为什么它都是好的。我再运行一下啊,他因为他这个是有时候是有加密,有时候是没有加密的,OK, 你看现在的话是不是有加密的,那现在就有加密的啊呃,我们就给他稍微处理一下啊,就反正有有的话啊,会存在我们这种加密的一个可能,我们就给他弄一下,呃,还有什么呢?还有这个城市啊,城市的话,它有时候也会有存在这种加密的一个情况啊,我们也给他处理一下。
35:00
啊,也给他梳理一下。对啊,我们看一下还有哪些啊,过户的话是没有问题的。OK啊,然后我们的一个,嗯。品牌应该也是没问题的。OK啊,那这样的话就全部都搞好了啊,这样的话就是我们所有的一个数据就全部弄好了啊,所有的一个数据啊,就是我们都是这么去搞的。那就把它的一个呃,映射规则给它固定出来,固定出来之后的话,你给它进行替换就行了啊,这种是比较简单的一个字体加密的一个方法啊,自己解密的一个方法。好吧,明白了没有?就给他把这个映射的规则给他固定出来,然后的话直接进行替换就行了。好的,那我们接下来的话就做一个简单的一个数据保存啊,那我们啊,既然获取到数据的话,我们就导入一个CSV的一个模块,Import csv.首先啊,我们创建一个文件对象。F=open对侧点CV。Model=W。
36:01
嗯,可定有贴不办。牛奶。那我们字典写作方法。啊,调用我们字典写入的一个方法啊。传入我们的一个对象,然后再加上我们的一个字段名。那我们自然名啊,都给它加上。然后这边的话。这些不要了。来替换。听话。OK, 再用一个变量名去接收CSV。那在下面的话,我们就干嘛呢?哎,我们使用一个写入表头啊,写入表头。点上panda啊,最后的话,我们就给他去进行一个数据写入啊,写入数据。
37:00
电梯。来运行好了,那这样的话,我们这一页的一个关于什么呢?关于它的这个数据信息的话,我们就全部给它保存出来了。保存到这个CSV的表格里面了。那这个的话就是我们相关的一个数据信息。啊,它的公里数啊,它的一个售价原价年份啊,城市啊,还有它的款式啊,它是哪一个款式的。对不对,然后他的一个品牌,然后标题七七八八的数据的话,我们就全部拿到了。好吧,来看到效果的同学可以扣个6啊,看到效果的同学可以扣个6。啊,这个的话就是关于一些简单的一个字体加密啊。自己加密的一个方法,这个还不是个动态的。如果说是个动态的话,你要去找他的字体文件啊,还要去找他的一个字体文件,对吧,他这个字体文件从哪里来的。是我们现在是直接把这个字体文件下载下来,如果说他这个字体文件是动态的话,你要去还要去抓包分析他这个字体文件啊,它是从哪个地方来的,那你还要对于他这一个数据进行一个提取啊,还要去获取它这个字体文件。
38:10
啊,像我们这里的话就不用了,不然你还得写个正则,然后把这个字体文件给它取出来,然后进行一个下载,然后再去构建它的一个内容。好了,有没有问题想问的?啊,如果说那我们进行一个多页呢,对吧,批量采集的话,这个就比较简单了啊。批量采集的话,我们就分析它的一个链接变化规律就行了。啊,我们给它清空啊,清空啊,我们来看第一页的数据啊。第一啊。啊,这是第一页的一个数据。啊,这是第一页的。是吧,啊,这个一个厘米乘20。啊,这只有20条,我们应该看这个60条的啊。
39:00
是不是这60条的啊,我们应该看这一个。啊,只要改什么呢?就我们翻译的话,只要改这个配置就可以了,啊,其实只有改这个配置就行了。我们来看第2页的。打第二的话就变成2了,打第三页的话变成3啊,我们就构建一个循环啊,我们这里直接写一个啊。构建我们的一个循环翻译for page.欢迎我们的range。对吧,你要采集多少页就采集多少页,那我们采集啊前10页的数据,咱们就循环10次,如果说你要采集前100页的数据,那你就循环100次是不是,然后把这个配置改到哪里呢?改到这里。打印一下啊printer。正在。采集啊D。多少也得输。金牛。M直接运行。啊,报错了,是因为我这个没关啊。
40:00
是因为我们这个这个文件没关啊,文件没关的话,它是不能写入数据的。玩到验证码了,爬午夜就不行了,这个网站。这把再爬5夜就不行了。还是说5月以后要登录了。哎,不用登录。不要等他为什么卡住了啊,那就等一下吧,那可能网卡了。被发现了吧,也没有啊,因为我在看啊,如果说被发现的话,你你可以看他那个网站啊,那就可以了。啊,可能就是刚刚卡住,可能单纯就是网卡,单纯就是网卡了。因为有些网站的话,它有一种可能啊,就是我我担心一个点是什么呢?就是我我他只显示前5页的数据,然后后面的数据的话,你你你要你你要去看的话,需要干嘛,需要登录账号啊,那那样子的话,你有可能说要要加上一个登录账号的一个cookie进行一个获取了。对不对,然后这里的话是没事啊,可能是刚刚就是一个简单的一个网卡。
41:08
来我们看一下数据啊,有没有问题啊,看看有没有乱码啥的,应该没有乱码。前面单个的没有乱码,你翻译的话有乱码就不合理了。那这个的话就是我们数据啊,就是我们一页60条嘛,一共的话就600条,那他一共有100多亿啊,就差不多是呃,1万条数据啊,1万条数据。
我来说两句