拍摄怎样读取一百万行的 cc 文件?数据存储到买色数据库 let's go! 这两天嘛,我只用潘纳斯和 pm 买车的完成。首先 pms 连接数据库, 连输九十,填一些参数, ip 地址,英文名,密码,账号在下方。我怎么分批的读取这么多的行数的数据呢?我使用潘纳斯的创个赛联盟方式,他可以每次只读取十万行的数据,这个数字大家可以自己调 对每个十二环的对待 frame, 我们先把它呢变成一个这样的形式,它是有类似的,类似的元素是个原组,里面包含 u 海, d 电, i d 平分时间戳 空间。好了以后一个 siri 句就可以搞定了。 instantly to move reading 有色列电音上方呢? using d 木问 i d reading 他有 step values。 首先得找一幅四个下方,大家注意啦,用的方法是 excuse the manage 这个方法 six 模板已经掉色,这样就可以进批量提交了。我们来运行看一下右键运行,咱们看到他每次处理十万行,正在查收数据, 这个时候我们打开数据库工具,在数据库上右键跳到查询功能台, 打开。然后呢,我可以 select 查询一下, select count 星 form 表的名字是咱们的 movie t, 选中执行一下,你发现呢?当前已经四十万行了,我们点开运行的礼, 五十万,六十万行了,那么重新查询看一下,六十万,咱们每个月后呢,就看到数字变化,应该变成七十万了。选中只行七十万,执行完毕,我们看一下最终的结果,总共有一百万零两百零九行。
粉丝18.5万获赞46.9万

pyson 零基础入门第三章三点八打开和读取文件你知道怎么在 python 中打开文件吗?我们想要在 python 中打开其他的文件,通常我们会使用 open 函数。使用 open 函数,括号内的第一个参数是需要被打开的文件的路径, 它可以是相对路径或绝对路径。第二个参数是文件打开的模式,路径跟模式都是自创类型的。 打开文件有三种模式,第一种是只读模式,用字母 r 来表示,可以理解为单词 read 的 缩写。 r 是 最常见的一种模式, 在此模式下只能读取文件内容,不能对其进行修改,如果文件不存在,程序就会报错。 第二种是 w 模式,选择这种模式就类似于清空一个笔记本,然后重新书写。如果文件不存在,系统就会自动创建一个新文件。 第三种 a 追加模式当我们希望将新内容添加到文件末尾,并且不删除原本的内容时,就可以使用这种模式。它不会覆盖原有的内容,而是将新的内容填写到原有内容的后面。 这种就特别适合记录日记等场景。现在我们来深入了解如何读取文件的三种方式。 open 函数还有一个默认参数叫做 encoding, 为编码格式,一般我们填写为 utf 杠八,因为 utf 杠八可以识别世界上绝大多数的语言, 使用它可以有效避免文件内容出现乱码。当 open 函数执行成功后,它会返回一个文件对象, 我们通常将该对象复制给一个变量,这样在后续对文件进行读写操作时会更加方便。在 python 中,我们有几种不同的方式提取文件,首先是 read 的 方法,它就像一个容量巨大的收纳盒,能够一次性的将整个文件的内容全部装载进来。 使用 read 的 方法能够获取到文件里面所有的内容。不过需要注意的是,我们只能够使用一次性读完, 若再次调用 read, 可能就没有东西可以读了。但是我们可以使用 read 的 方法来指定要读取的字体数量,在括号内写上数字写的是多少,就会读取多少字体。然而如果文件非常大, read 的 方法可能会占用较多内存, 此时可以考虑使用 redline 方法。 redline 方法就像有小格子的收纳盒,一次只能装一个,也就是说一次只读取一行内容,适合竹行处理文件,还可以搭配循环来读文件的内容。 除了 redline 方法能够一次读一行之外,还有 redlines 方法,它会读取文件中的每一行,但是它会把文件中每一行的内容作为列表中的一个元素放到一个列表中,这样我们就可以像操作列表一样处理文件的内容啦。 读取完文件后,还需要记得关闭文件,使用文件对象的 close 方法,但前面的 open 方法刚好是一对,要用这个方法能够释放电脑的内存资源,文件一旦被关闭,如果再次尝试读取便会出错,需要重新打开才能够获取到文件的 内容的话,也可以在 open 语句前加上 with 关键字,然后 i s, 后面跟上文件对象的命名和冒号, 在缩进的代码块中执行文件操作结束后,文件会自动关闭,不需要我们手动写 close 方法,同时这种写法也更加简洁。 以上内容介绍了在 python 中打开文件和提取文件的基本方法。总的来说,提取文件主要可以通过三种方式实现, read 的 方法,能够一次提取文件的全部内容。 redline 方法每次只读取文件中的一行内容,而 redline 方法则会读取所有内容,但是会把每一行的内容作为列表中的元素返回成列表。你都学会了吗? 接下来让我们通过具体的例子来尝试使用这些方法练习时间,在 pycharm 中,我创建了两个文件,一个是今天的作业文件,需要在这个文件里面打开,提取到 test 文件夹下面的 demo 文档, 然后我在这一个文件同一个目录下面创建了一个 test 目录,也就是创建了一个 test 文件夹,在这个文件夹里面放了一个 demo 文件。现在我们需要打开这个 test 文件夹下面的 demo 文档, 使用到的就是 open 方法。那么我们的路径大家还记得是应该怎么放的吗?因为是在同一个目录下,所以我们可以省略点反斜杠方法,我们也可以不省略, 因为有反斜杠,所以我们需要在前面加上啊,取消反斜杠的转移功能,那么在这里再写上 test 文件夹,然后再写上反斜杠 demo。 注意,我们这里不要这个点 txt, 因为我们并不是创建的一个文文本档,我就是直接创建的一个文件,直接就是在新建这里创建的一个文件,我并没有加点 txt 的 后缀。 那么写了文件的路径之后,我们来选择打开这个文件的模式,使用的是只读模式写上。二、打开文件之后,我们需要关闭文件,我们可以在下面写上 close, 也可以使用 with 关键字写上 s 变量名, 我们写上 f, 也可以写上 file, 也可以。创建之后,我们对文件进行的操作都需要在下面缩进的代码中。首先我们来尝试打印一下文件中所有的内容, 使用到的是 read 方法,现在右击我们来运行一下这段代码,可以看到是报错的,其实原因是什么呢?因为我们的内容是中文的,我们并没有将它的编码格式转为 utf 杠八, 所以我们写上 encoding 等于 utf 杠八,再来运行这段代码,就可以成功调用 test 文件下面的 demo 文档里面的内容了。 使用 read 的 方法只能够读取 demo 文件下面所有的内容,那么我们现在将它注视掉,注视掉之后,我们再来写使用 printredline 方法再来运行这段代码,出现的就是这个 demo 文档中第一行的内容。 除了使用 redline 方法只能一行一行调用之外,我们还可以使用 redlines 方法将剩下的内容都返回成为列表。写上 redlines, 再来打印一下内容, 可以看到除了 demo 下面这一句文档之外,它接着下面把下面的所有内容都转化为了一个列表的形式,并且连换行它都作为了列表中的一个元素。今天的内容就是学会如何正确的打开文件和读取文件,你都学会了吗?如果你有什么疑问,记得在评论区提出来。

passion 读取 ace 文件的三个妙招,不看就亏大了。第一种方法,我们使用 pandas 读取 ace 文件, input pandas s, pd, df 跟 p d, 点 read acel, 传入 ac 名字, printerdef 等害的就可以输出 ac 的前几行右键 运行,读取成功。第二个方法,我们使用 open pixar on open pixar input load workbook w b 等于 load workbook 传入以下的名字,北京天气点个赞。 对上 sheet 表格等于 wb 点 work sheet 取第零个就是第一个 sheet, 然后 far row 每一行 in sheet 点 rose, 对于他来说,每一行 far 下音绕 printer 下单格 定外流每一行咱们加一个分开复式空格,同时加空行右键运行突起真空。第三方法, xlrd, 对于老的这种格式,点 xls 文件,颈椎过来读去 apult xlrd workbook 等于裂库。他的 open workbook 传为名字,下方 shiter。 一个表格是这样获取的, shape 它的第零元素。 怎么获取内容呢? far roll 音咱们的 range cheater n rose, 然后 far 列音咱们的 range cheater 点 n clums value 等于 cheater, 点 save value, 传入 row 和 column, 我们可以 printer value 每一行 and 空格分格下方加下空行右键读取已成功,想学习更多干货内容,晚上七点半来我直播间。

pixon 零基础入门第三章三点九文件写入你知道在 pixon 中如何将数据永久保存吗?假设你的程序有一个添加列表元素的功能,每次添加完数据后,一旦重新运行程序,之前添加的数据都会丢失,恢复到初步化的状态。 这样的事情也太糟糕了吧。为了解决这个问题,我们可以将需要保留的数据写入文件中,让我们的数据能够永久保存下来。只要不删除文件,下次运行时依然可以看到之前保存的内容。 上一个视频我们主要学习了如何打开并读取别人的文件。那么如果要把自己的数据写入文件,应该怎么做呢? 无论是写入还是读取文件内容,都需要先打开文件,操作完成后再关闭文件。所以我们依旧可以使用 with open as 语句来打开文件,它会自动帮我们处理文件关闭的操作,避免我们忘记手动关闭文件。 在 open 函数中,我们需要传入两个参数,第一个参数是文件的路径,第二个参数是文件打开的模式。如果我们要写入文件,就使用模式 w, 这是英文 write 的 缩写, 这里与只读模式 r 有 些不同。在 r 模式下,如果文件路径找不到文件的话,程序就会报错。但是使用 w 模式,如果找不到文件的话, python 会自动创建一个新文件。 另外,为了避免因文件中包含中文等字母而出现编码错误,我们可以通过可选参数 encoding 等于 utf 杠八来设置编码格式。设置好这些之后,我们就可以对文件进行写入的操作啦。 使用止写模式打开文件后,可以通过文件对象的 write 方法写入内容,只需要在 write 方法的括号里面写上想要保存的信息就可以了,文件就会出现这些文字。 需要注意的是,如果多次调用 write 方法,新添加的内容会添加在已有内容的后面,不会像 print 函数那样自动换行。如果需要换行,就可以手动在字母串中添加换行符。反斜杠 n。 还需要注意, 使用只写模式 w 写入内容时,会覆盖文件中原本的内容。例如本来 demo 零一这个文本文档中已经有了内容,打开这个文件写入新的内容之后,原来内容就会被清空,只保留新写入的内容。 如果希望保留原有内容,不想清空,只想要在后面添加上新的内容,这时候就不能够使用 w 模式打开文件,而是使用到我们之前讲过的 a 追加模式。用 a 模式打开文件,再调用 right 方法,新内容就会添加到文件的末尾,而不会清空原有的内容。 不过要注意,无论是 w 模式还是 a 模式打开的文件对象,都不能直接提取文件内容,在这两种模式下,调用提取方法,程序就会报错。 同样,在读取模式下也不能够调用写入方法,否则也会报错。如果我们既想读取文件中的数据,又想把新数据保存到文件中,难道只能先使用 r 模式打开文件读取内容,再用 a 模式打开文件写入内容吗? 这样也太麻烦了吧。实际上,我们可以在模式后面加上一个加号,比如 a 加模式,这样就可以同时支持读取和写入操作了。 调用 write 方法写入的内容会直接添加到文档末尾,但需要注意的是,在这种模式下,使用 read 方法读取内容之前需要使用 seek 方法来改变 python 的 光标。我们使用 a 加模式在文件末尾添加上了内容,光标就到了文件的末尾, 那么 python 默认我们已经读到了文章末尾,再调用 read 的 方法就会读取不到内容。 seek 零方法可以将光标恢复到文档的起始位置,这时再调用 read 的 方法就可以得到文件中的所有内容。同样, r 加模式和 w 加模式也同时支持读和写的操作。 使用这些模式打开文件后,调用读取和写入的方法都不会报错。下面我们将通过具体的代码示意来进一步理解和掌握这些内容。接下来是练习时间, 在 pycharm 中我们做这样两个内容,创建一个 demo 文档,并写入以下内容,然后在追加模式下写上这两行内容。 现在我们可以使用 with 关键字来打开 demo 文档,因为我们使用 w 模式,就算我们没有创建这个 demo 点 txt 文档, python 会自动给我们创建上这个文档。 现在我们在这个文档中写入的内容是使用 f 点 write 方法写,上官居,然后把下面的两行也使用 f 点 write 方法将它填充进去。现在我使用 f 点 write 方法已经写入了三行内容。那么我们运行一下这段代码, 现在我们来看有没有成功创建这个 demo 文档和写入这三行字的内容呢?在这里大家可以看到,我已经创建了一个 demo 点 txt 文档,本身我自己并没有创建这个文档,是 python 给我们自动创建的。 点开这个 demo 文档,在这个里面已经写入了关居关关雎鸠在河之洲,但是并没有换行,因为 w 模式下使用 right 方法并不会自动加上换行,所以我们要在这里自己写上反斜杠 n。 写上反斜杠 n 之后,我们再来观看这个 demo 文件,已经是换好了的效果了。在这里需要大家注意的一点,明明我们调用了两次这段代码,为什么没有写上两次这个内容呢? 因为我每一次都想要写上这个关关雎鸠在河之洲,按理来说,我调用了两次方法,它就会写上两次内容,因为使用 w 模式,它会覆盖掉原本文件中的内容。如果不想要覆盖掉原本文件中有的内容,我们就需要在追加模式下写。那么在这里我们使用追加模式 with 写上 a 模式就是追加模式。在追加模式上使用 write 方法写上这两行字,再来运行这段代码,再点开 demo 文件,显然这五行内容已经出现在这个里面了。如果我们想要使用写入方法读取内容的话,也可以写上 a 加。 记住要在这里写上 seek 零。只有把光标恢复到了文件开头,我们才能读取到整个文件所有的内容,再使用 f 点 read 方法来读取文件中所有的内容。现在我们就得到了关关雎鸠这五行字的所有内容。 将数据写入文件中,不但能够保存你的数据,也更方便你将数据传递给别人,不需要别人反复运行,就能够得到我们写入的数据。 关于如何打开文件和读写文件,你都学会了吗?如果学会了,记得点个赞。你的点赞就是我创作的动力,有疑问也可以在评论区提出来,我们下个视频,再见。

这节视频我们来继续了解 python 文件操作当中的文件写入,那在上一节视频当中,我有提到我们的 python 程序,它是运行在内存当中的,那随着程序的结束,程序所得到的这些中间结果也就会消失掉。 那如果说我们希望把这个程序的运行结果进行一个长久保存,那这样呢,我们就需要借助于文件,哎,我们把想保存的这个数据写入到,或者说保存到文件里边去,那在稍后想使用的时候呢,我们再从那个文件里边读取出来。 在上一节视频呢,我是分享的,如何去读,那这一节视频呢?我们就来了解一下如何把内容写入到文件里边去。好,那我们来正式开始。 首先呢我来创建这一个 python 文件,练习一点 py。 好, 那第一行代码呢?还是说我们要从某一个模块里边导入什么内容?我第一行代码 from 从 pass lab, 那 就是这个模块里边,然后 import 导入 pass 这么一个类啊,它是一个类。 好,那么我们一个一个类呢,就应该是对它进行一个实力化,在实力化的时候需要我们传一个参数,这个参数就是我要把内容准备写入到哪一个文件里边去,那在这呢,我就写成 a b c 点 t x t, 那在 abc 点 t x t 这个名字之前,我并没有写哪个文件夹,所以呢,它就是在当前这个文件夹下啊。好,那接着呢,我们既然实力化,就应该用一个变量来代表实力化的这个对象,那我在这用小写的 pass, 接着我们第三行代码加起来就三行代码就可以了啊,第三行代码我们调用这个对象的一个方法,方法的名称叫 write 下划线 text 啊,那就是写文本,这个名字非常简单啊。好,那这个方法里边传的参数 就是我们要把什么内容写入到文件里边去,当然它应该是一个字母串的形式啊,那如果说你不是字母串的形式呢,你就必须给它转化成字母串再写入啊。好,嗯,那关于这个细节呢,我再重申一下啊, 如果说我 abc 点 t x t 这个文件不存在。好,那我这三行代码执行之后呢,就会创建这个文件, 这个很简单,那如果说我之前已经有 abc 点 txt 这个文件了,那么呢,即使你之前这个文件里边有很多内容,那对不起, 我这次写入会把之前的覆盖掉,那之前的就没有了,所以这个呢需要我们慎重。当然,那我们也有办法来判断一下,说我要创建这个文件,或者说我要往这个文件里边,呃,写内容,那可能发生覆覆盖,我们有办法说,我去判断这个文件是否存在,那如果存在呢?我就不写 啊,或者说呢,我们还有办法说,既然这个文件已经存在,我能不能把这个要写出的内容作为追加的形式,不覆盖之前的,然后我只是 把这个要写这次要写的内容追加到整个文件后边也是可以的。这个在我后面的视频啊,我会遇到的话,我就会讲解,会分享啊,那这节视频我们就简单的说我创建一个新文件,然后把内容写进去。 好,那刚才我还有提到的一点,就是说我们写入的内容必须是字母串,你通过它方法的名称,我们也知道 write text, 那 它就必然是一个,呃,文本啊,就是一个字母串, 你说我就要把一百这个数值写进去,那你应该把这个一百转化成字母串啊,然后呢,再写,写进去。 好啊,这个是我们对文件的一个解入。那当然呢,在这,呃,在我实际测试的时候,我遇到了这么一个乱码的问题。好,这个乱码的问题我们来看一下啊,那这呢是我根据那个 ppt 上面的代码一模一样敲在编辑器,编辑器里边了,然后呢,下边这是我执行这个 py 文件啊,那执行的结果它就会创建 abc 点 txt, 当我打开之后,我发现它是乱码啊,这它应该显示的是要写入的内容这六个字,但是呢,全是问号啊。这个呢,就是我们在创建或者说写入内容的时候,呃,没有指定一个 编码格式啊,所以呢,回到我们这个 ppt 这来,然后呢,我们可以在第三行再给它加一个参数来指定它的编码格式。 好,那这个参数的名称叫 encoding, 那 就是有点编码的意思啊,那等号后边是字母串形式的 u t f 杠八。 好,那这个呢,就是一种编码格式,那在这个视频当中呢,我不具体的去解释它啊,而且呢,基本上来说,我们就记住这一个,呃,选项就可以了,它一般不会是其他的值啊,所以我们记死了就就行啊。 好,那我加上这个参数之后呢,哎,它就可以了,哎,我们再看啊,那在这呢,我加上了这个指定写入内容的编码啊,然后我第二次执行这个 python 文件, 哎,我们再次打开我创建的这个 abc 点 txt, 那 么呢它就不乱码了啊。好,那当然呢,这种乱码应该是出现在我写出的内容是中文啊,也许你写入英文的时候它就没有这个问题啊。 好,这是,呃,乱码的问题,然后接着呢,我们在这个蟒蛇书当中呢,他还有稍微呃提了一下,就是写入多行数据。 好,这个也比较简单啊。好,那现在呢?这是我刚才的代码,然后呢我们往下一写,呃,因为如果说我们要想写入 或者说一次性写入很多内容,那这个时候呢,我就不方便说把写入的内容直接作为参数放在这个方法里边啊。那可能我就需要用到一个变量,用这个变量来保存大量的我想写入的内容啊, 比如说我就可以把这个要写入的内容这几个字用变量来表示,然后我再把这个变量添到这个方法参数列表的位置来。哎,这个就用变量来表示就更灵活了吗?啊,那当然呢,我在这呢,因为我接下来说的是要写入多行的内容啊,那在这我把这个内容换一下。 好,那在这我写的是第一行反斜线 n, 第二行反斜线 n, 第三行反斜线 n。 呃,在很早之前我的视频里边有分享过,这个反斜线 n 就 代表换行, 虽然在我代码当中,我们看这是一行代码,这一个字母串是一行,但是当我们把这个内容真正写入到 abc 点 txt 这个文件当中的时候, 他就会把这个斜线反斜线 n, 啊,就相当于理解为回车换行了啊,当然严格来说这个叫换行啊啊,总之呢,第二行就真的会出现在那个文件的第二行啊,这个就因为是我加了这个反斜线 n 啊, 当然在我们书上边呢,不是这样写的啊,我现在这样写,是我故意的,我故意把它写在一行,然后向你展示,说明这个反斜线 n 起到换行的作用。 我们书上呢,它是这样去写的,就是 contents 加,等于就是我依然有一个变量,变量里边已经有内容了,我在已有的内容之上再追加一个第四行, 这个第四行就真的会出现在第四行,为什么呢?因为我之前的内容,第一行后边有一个反斜线 n, 换行换到第二行,然后 是第二行三个字,第二行后边又反斜线 n, 那 就换到第三行,第三行这三个字后边还有反斜线 n, 那 就换到第四行,哎, 第四行,然后我这追加的内容,第四行这个意思啊,当然呢,我还可以再追加加,等于,然后第五行反斜线 n, 哎,好,那现在呢,我这个代码就是这个样子,然后我们看一下编辑器当中的执行结果,在这啊,是我和刚才 ppt 上边的代码是一模一样的啊。 接下来,那在这呢,我执行这个 python 文件,然后我们看到它创建生成的 a b c 点 t x t 这个文件,如果刚才所预测的,那在这第一行,那就是这个文件的第一行,然后第二行,第三行,第四行,第五行, 因为我在追加第五行,最后我还有一个反斜线 n, 所以 这个文件当中他有一个第六航空行啊,这个代表我那个反斜线 n 依然是起作用了,哎,就是这么个意思啊,好,那以上呢,就是我这节视频所想分享的全部内容啊, 因为透彻,所以简单,我是讲师井水,那这节视频呢,我们大概讲到了蟒蛇书的第一百七十二页, 当然在第一百七十二页呢,有两个练习题,我准备在下一节视频当中呢,把这两个练习题再给大家分享一下啊。啊,那当然,如果说你有什么疑问,欢迎在评论区给我留言,如果说你没有什么疑问,你只是觉得,哎,这个视频对你有收获,那也欢迎评论留言 啊,比如说学到了,或者说感谢分享啊。当然,那更加的希望大家能够关注我这个账号,那么让我们下个视频见。

同学们好,那今天呢我们来分享一个数据可塑化的项目,那在这里我们先来看一下它最终结果, 在我们的网页中呢,他会去生成这样的一张图片,在我们的鼠标放到这个地图的每个省份中呢,他会去展示对应的一个数据,并且在左边他会有一个图例,可以根据这个进度条去选择展示的一个省份的颜色。好, 那我们这里怎么去实现的呢?我们来看一下,简单看一下源码,这里我们通过 pandas 和这个 p y charts 呢去进行我们的数据分析以及我们的图标绘制,这里我们读取到我们的这一个 数据之后,然后通过我们的 chess 里面的这一个 map 方法呢,去构建我们地图这样的类型图片啊,构建好之后呢,我们再去设置一些局的一些配置,像啊,最终呢就能够得到我们这样的一个网页啊, 那这里我们的数据怎么来呢?我们可以去百度上搜索这个国家统计局,然后在我们的首页这里的菜单栏,我们找到地区数据,这里有个分审年度数据, 进入之后呢,它会有我们相对应的一些数据项啊,我们这里可以去选择一些不同的指标,我们今天的例子呢是以地区生产总值为指标的话,我们这里选择地区生产总值就行, 然后找到右上角这一个下载键,点击下载呢,它会让你登录一个账户,登录之后你再去点击下载就可以了,它会让你选择下载数据的一个格式,我们选择 c s v 格式。啊啊,下载之后的数据呢,在我们的桌面上, 这里我们右键,然后选择打开方式,到记事本中去看一下它的原始数据啊,它这个原始数据呢,基本上是已经做了我们的数据清洗的,对吧?但是它留有了一些脏数据,比如说这里的 数据库指标以及时间对于我们来说是没有用的,那我们把它删除啊,以及最底下有一个注视,我们也可以把它删除 啊,剩下来的这个数据呢,我们就可以去另存为到我们的一个新文件中啊,这里呢我已经存到了我们的这一个分审年度数据一里面,我们可以打开来检查一下 啊,这里面剩有的一个数据已经是我们需要的了,对不对啊?那我们可以把它呢复制到我们的这个项目里面来 啊,那复制来之后,它会自动的去打开我们的这一个文件,大家可以看到现在我们的文件里面出现了一些乱码,对不对?那这些乱码的原因是因为我们的 pychm 给它设置的是这个 etf 杠八的一个格式,它对于我们的中文呢,没有那么完好的一个支持。 那等下我们读取文件的时候就需要注意下它的一个编码格式啊,那我们这里先一步一步来写,首先我们要去做数据分析以及做我们的数据提取的话,我们就需要用到我们的 pandas 库,那这里我们先把 pandas 导入进来 啊,那既然我们要去做数据导入进来,那我们这里所要用到的就是我们的 pandas 里面的 read 方法,对吧? 通过 pandas 库呢去调用我们的 read csv, 因为读取的文件格式它是我们的 csv 文件 啊。 啊,那它呢,一共两个参数,第一个参数呢,写我们的文件地址,这里我们用相对方法去写的话,我们直接写文件名就可以了。 好,然后再用 encoding 写成我们的 g p k 格式,因为 g p k 对 于我们的中文支持是可以完美地去适配的啊, 用 jpk 呢解决文件乱码啊,然后我们来一个 date 呢,储存一下我们的数据,我们来输出一下,检查一下我们的 date 数据是否正常获取到了 啊,可以看到这里输出的没有乱码了,也是能够正常拿到我们数据的,对不对啊?那证明我们的 date 已经获取数据成功。那这里呢, 有了数据之后呢,我们就可以去做对应的一个数据筛选了,那我们这个程图啊, 他是对应的二四年的一个生产种植,对吧?然后我们主标放上去展示的数据,他也是单个数据,对不对?而我们代码里面的数据呢,他是一个多维度的,那这里我们怎么去获取不同的一个数据呢? 那我们可以通过这个 date 啊,去按照字典类型的一个格式啊,通过我们的列名去获取到我们相应的数据,这我们在做数据筛选啊, 数据筛选获取指定列数据。那首先呢,我们要地区好,然后呢还要我们的年份 啊,我们来获取这两列地区列和二零二四年这一列的数据。 来,我们 print 一下我们的 info, 看一下效果 啊,那现在我们是不是就获取到了我们这个地区以及二零二四年的一个数据,其他数据都没有了,对不对 啊?但是呢,这里的数据它是我们 pandas 里面的这一个 data from, 它的数据格式啊,它是以表格形式给我们展示的,而我们在做数据乘图的时候,它需要用到的数据格式呢,是一个二维表的,二维的二维列表的一个格式啊, 那这里我们怎么去进行转换呢?我们 data from 里面它会有一个方法, 我们先点 values, 然后再去点这个 to list, 它就能够去转换成我们的 list 列表。在这里呢,我们用 info list 来保存一下我们的数据 啊,然后我们来 print 一下我们的 info list 啊,是不是变成我们二维表形式了,对不对啊?这里我们在做的是将 data from 数据呢转换成二维表,二维列表啊,数据啊 转换成功之后,我们就可以准备去做它的一个仕图了,也就是我们地图的一个绘制了,那这里地图绘制的话,它需要用到的是我们的 p y p y chris 库啊,用到我们的 p y chris 库, 它里面呢会有一个 chess 方法, chess 对 象, chess 对 象里面呢,它会有很多乘除的一个内容,这里是 from 啊 啊啊,比如说我们的这一个吧啊吧的话,它就是我们的这一个。呃,柱状图,那我们今天要画的是这种地图形式的话,就导入我们的 map 就 可以了 啊。这里我们除了导入 mac 以外呢,我们还需要去导入一个 options, options 的 话主要是去设置一些全局变量的 啊,给个 s 吧 啊,那这里我们的 pychoos, 大家如果不知道怎么去用的话,我们可以去百度上搜索一下我们的 pychoos 啊 啊,在这呢它会有一个 pychose 的 文档网站,大家点开点进去之后点一下 get, 它就会打开这样的一个中文文档。在这里呢我们的左边会有它的一个菜单栏,这里基本图标中呢, 会有我们能够通通过这个 py 设置去设置或者去成图的一些类型,比如说我们刚刚讲到的 bar, 它是一个柱状图,对吧?那里面就有它的一些设置,然后我们今天要做的是地图,那找到我们的 map 啊,找到 map 之后呢,这里会有一个 app 方法,然后里面呢会有它相应的一些参数对应的一个介绍。那这里我们想要去成我们的这一个 map 的 话,首先我们需要先去建立一个 map 对 象, 先建立我们的 map 对 象类啊,创建一个 map 对 象 啊,然后我们再去对 mac 对 象里面呢去设置它的一些内容,通过我们的 add 方法啊,里面去给上对应的一些参数就可以了。 这里呢我们 add 方法,首先来设置一下它的地图中的这一个名称 service name 啊,生产。总之 啊,名称设置好之后呢,我们再去设置它的一个数据项,这里我们的数据项的话,一定要注意它是一个二维表,呃,二维列表的一个形式啊, map 的 数据项设置是一个二维列表上 啊,也可以是两个单独的列表啊, 这里两个单独的列表的一个用法呢,在我们的文档里面有写到, 通过我们两个参数去设置它对应的键和值啊,那这里的话,我们在前面已经给它转换成了一个二维列表,对吧?那在这呢,我们通过这个参数 date, 哎,给到一个设置啊,设置好我们的数据之后呢,我们还要去设置地图的一个样式,我们是中国省内的一个数据,对吧?那我们这里的地图类型呢,就给到一个 china 啊,然后我们还可以去设置它一个地图缩放比例,用 zoom 参数去进行设置就可以了 啊。设置好之后呢,我们来看一下数据是否正常运行了啊?正常进入到我们里面来了,我们这里用 chat 点 rand 去生成一个 html 代码 啊,我们来运行一下看下效果啊, 啊,运行完了,然后我们找到生成的这个 map 啊,现在呢我们就可以看到这里已经成了一个图了,对吧?已经有我们的图像 图片的一个呈现了,但是呢,在这你会发现它和我们的目标效果还差了很多,对吧?这里差的东西呢,其实就是我们的一些全区配置项没有去进行配置,这里我们点到这个文档中,我们找到这一个全区配置项。 好,我们也可以直接通过这个网址去进入啊。 啊,找到这个全剧配置像之后呢,我们可以看到它这里有标题配置的,然后还有一些图例配置以及工具配置等等这些设置,对吧?那这里我们当前所画的这张图,当前所做出来这张图啊,它有标题没有? 和我们这里比起来有标题没有,没有,对吧?然后它的这个图例我们这里有没有也没有,对不对?然后以及我们左边的这个视觉映射 这里有没有没有,对吧?包括那个颜色也没有发生改变,对不对?那接下来呢,我们就来做这里的配置啊,做我们的全局对,全局配置 啊,这里全局配置呢,他需要用到我们的这一个呃,窍窍, 然后点 set 扩展 options 啊,用到这一个方法,在这个方法里面呢,它可以去设置多个参数,那我们这里一个一个来进行设置,首先呢我们来设置一个标题配置项, 好,标题配置上的话是我们的 title options, 然后它需要通过我们的 options 去点我们的 title option 这个方法进行一个设置,在里面去写上对应的参数,比如说我们刚刚这里没有标题,对吧?那我们接下来呢,给它来一个 title 啊, 这里是二零二四年的,对吧? 啊,那除了 title 以外,我们还可以去设置一个副标题, title 的 话是主标题我们上面这一行数据,那副标题的话是下面这一行数据 副标题的一个设置呢? subtitle 数据来源, 国家统计局啊啊,然后我们再去设置一下我们这一个标题,它的一个位置是否居中还是怎样的,以及它的一个向上的距离,或者向下的一个距离啊? 这里我们可以通过 pose post right 啊,去设置它的一个水平位置是居中的,那就点到 center, 然后 post top 呢,去设置它的一个边框范围,向上呢,我们留一个百分之五的距离空间啊,然后我们再来运行一下 刷新,哎,标题是不是出来了,并且它是不是居中于我们这个地图,对吧?好, 这里我们 title 标题的一个配置项呢,我们设置完之后,我们还可以去设置一些其他的,比如说我们刚刚看到的这一个视觉映射我们的颜色变化,怎么去设置呢? 我们可以看到这里有一个视觉映射的关键字,看到没有,那它其实就是我们要设置的一个参数 啊,这里呢我们多个参数啊,注意打逗号。 在这里面我们去设置一个最大值,最小值啊, 啊,但是这个最大值和最小值我们并没有,对不对?因为我们前面没有去进行一个获取吧,没有去进行一个计算,那这里呢,我们来补充一下啊,我们在二维表这里,我们通过这一个循环啊,去拿到我们每一个 二零二四年的一个数据,然后用 max 和 me 去求最大值,最小值就可以了。那这里拿的话,我们用 values 啊 来获取一下,然后 info list, ok, 然后我们来一个 max value, 来一个命 value, 好 拿到最大值,最小值之后呢,我们在这来进行一个设置, 设置好最大值,最小值的话只是设置它颜色变化的一个范围,接着的话我们要去设置它的颜色变化的一个过程, 其实位置和最终位置以及中间位置它的颜色是什么样的?这里我们要用到 round color 啊,然后通过十二进置的一个写法呢,去进行一个颜色的选择 啊,那这里我们设置的一个颜色呢,是由绿色变成黄色再到红色,和我们这里的最终成果是一样的一个颜色啊,然后我们来运行一下,看下效果 啊,刷新一下,哎,现在我们的颜色是不是出来了?哎,错了啊,刷新错了,现在我们的颜色是不是出来了,对不对啊?那这里我们还有什么?还有一个图例,这个图例在我们 展示效果这里是不是没有,对不对?那我们要把图例删除,我们用到的是这个啊?啊,在这呢,我们再来设置图例。 好,这里很简单啊,就一个 excel 是 否去展示我们的福利,我们给到一个 force 就 可以了。 运行啊,这里呢,我们来刷新一下啊,现在我们所看到的这个图片,是不是就和我们正式要的这个 图片是不是一模一样了,对不对啊?这就是我们今天要分享的这个数据格式化的一个效果。

python 凭借其强大的数据处理库、简洁的语法以及活跃的社区支持,成为了数据采集与处理领域的首选语言。数据采集 使用 request 和 beautiful soup 进行网页抓取网络爬虫是数据采集的常用手段之一。 python 中的 request 库可以轻松地发送 h t t p 请求,而 beautiful soup 则用于解析 html 文档,提取所需信息。当然,进行网页抓取时需遵守网站的 robots t x t 协议,尊重网站的使用条款。利用 api 接口获取数据许多网站和平台提供了 api 接口,允许开发者通过编程方式获取数据。 python 的 request code 同样适用于调用 api, 只需构造正确的请求 url 并解析返回的 json 数据即可。 数据清洗,确保数据质量。处理缺失值 python pandas 库提供了多种方法来处理缺失值,如填充、删除或使用差值法。选择合适的策略取决于数据的特性和分析目的。 数据类型转换 pandas 允许我们轻松地转换数据类型。异常值检测与处理异常值可能是数据录入错误或极端事件的反应,对数据分析结果产生显著影响。常用的异常值检测方法包括相线图分析、 z 四二方法等。 数据处理与分析,挖掘数据价值。数据聚合与分组在数据分析中,经常需要对数据进行聚合或分组操作,以获取更高层次的信息。 pandas group p 功能非常强大,允许我们按一个或多个列对数据进行分组,并对每组应用聚合函数。 数据透视表数据透视表是数据分析中的利器,能够快速地汇总、分析、探索和总结数据。数据格式化数据格式化是将数据转换为图形或图像的过程,有助于直观地理解数据特征和趋势。 python 中的 maccloudlab、 cfo 二和 pladley 等库提供了丰富的图标类型。高级数据处理技术数据预处理在机器学习中的应用。在机器学习项目中,数据预处理直观重要,包括特征缩放、特征选择、降维等。 cyt 链库提供了丰富的预处理工具,帮助我们从原始数据中提取最有价值的特征,提高模型性能。大数据处理 haduba 与 spark 结合 python 面对海量数据,传统方法往往力不从心。 haduba 和 spark 作为分布式计算框架,能够高效处理 p b 级数据。 虽然 haduba 和 spark 本身不是 python 库,但 python 可以 通过 python 等接口与之交互,利用 mapreduce 或 dat 调度实现复杂的数据处理任务。



然后我们要去采集这些数据内容的话,我们,嗯还是按照一样的,就是爬虫实现的一个基本流程给大家去进行一个讲解啊, 我们爬虫实现的基本流程, 嗯,这个流程的话大概是分为两步啊,第一个的话是数据来源分析,第二个呢是代码的实现步骤, 事情布置啊,分为这两个大类啊,然后明确需求的数据来源分析里面的话分为明确需求和我们的抓包分析。代码布置的话分为发送请求啊,发送请求获取数据, 解析数据,还有一个保存数据啊,这样的话就是我们基本的一个步骤了。嗯,首先的话我们这个明确需求就是明确采集的网站和数据内容 以及数据内容。咱们网址的话就是,呃,淘宝商品嘛,打搜,随便搜索,随意啊,任意搜索一个商品啊,任意搜索一个商品,呃,然后数据的话就是我们的一个商品信息, ok, 然后第二步的话抓包,抓包的话就是通过浏览器的开发者工具分析对应的数据位置, ok, 这里的话它分为三步啊,第一个打开开发者工具,第二个刷新网页,第三个通过关键字搜索,呃,查询对应的数据接口 啊,这是我们的基本步骤啊,我们打开这个开发者工具的话,就直接在浏览器的页面当中按一个 f 十二就行了,我们来抓爆一下,按个 f 十二,然后我们刷新 让整个网站重新加载一遍,啊,啊,记得刷新一下,刷新完了之后的话我们直接去搜, 搜的话就是你需要什么数据就搜什么需要这个标题,对啊,那我们就直接你要商品数据的话,这个标题肯定是要的,所以我们就直接搜这个标题就行了啊,比如说这个什么唐麦啊, q 六,呃,挤压 可以按啊,就搜一部分就可以了啊,搜一部分啊,搜一部分就可以了,然后我们回车打回车之后的话,你可以看到,哎,这边的话就会出现我们的一个数据接口,那就点这个搜索按钮,这里话是搜索按钮, 然后第二步输入搜索内容回车,但我们所搜的话就是它的标题啊,就以标题当中的一部分内容去搜就可以了。 ok, 打印标题中的啊,一部分数据 进行搜索,那不用不用全部复制啊,复制一部分就可以了,没必要复制那么多。然后下面这里的话,他就会告诉你我们想要的数据他是在哪个接口里面啊,这样的话就直接找到了数据所对应的一个位置了, 那他的一个数据的话,就他的一个数据内容,像他的一些标题价格,还有他的一些地区啊,地区销量的一些情况等等,反正在这里面都是有的,还有他的店铺名字, 那都是在在哪里呢?在这个 data 下面的。哪一个啊?这个啊,这个里面啊,这里面的话就是我们相应的一个商品数据信息 哇,就找到了啊,你知道数据在这里之后的话,我们看标图啊,请求的网址就是这个,这个话就它的一个接口啊,比较长,我就写个短链接, 它的一个数据包的啊,数据接口就这个,这个话就它的一个接口链接很长啊,像问号后面的话,这些都是它的一些常用参数啊,就比较多,然后是一个 get 请求, 它的一些请求头的一些参数内容啊,也在这里面,像它的 cookie 啊的防盗链啊,然后我们的 u a 啊,都在这里。这么长,对,因为它的一个参数会比较多嘛,对啊,参数会比较多。 ok, 好 啊,那我们啊既然找到了数据所在的位置之后啊,就就就按照这个三个步骤去找就行了,就按照这三个步骤去分析就能找到这个位置, 找到之后的话我们去写代码,就按照发送获取解析和保存的一个基本步骤嘛,发送请求的话,它就是模拟浏览器对于我们的 u l 地址发送请求,获取数据的话,那就是获取服务器啊,返回的响应数据 解析呢,那就是提取我们需要的数据内容 保存,那就把提取出来的数据保存到本地文件中,那就可以了。 哇,这是我们整体的一个流程啊,然后大家再等一下,我们就按照这个步骤啊,按照这个步骤去写我们的代码,如果说大家有不懂的啊,对于代码的话有不理解不清楚的话,你可以直接把你的问题说出来,那这样的话就会给大家去进行一个解答,好吧, 呃,如果说你们不提问的话,就默认大家都听懂了啊。第一个啊,我们的一个发送请求, 发送请求的话,我们首先做一个模拟浏览器,这个模拟浏览器的话啊,我们就直接使用什么呢?使用这个请求头里面的参数就可以了,我们就用什么呢?用 cookie 啊,就把它的 cookie 啊复制过来,然后还有它的这个,呃,瑞凤防盗链,还有它的 u a 啊,把这三个拿过来就行了。放到一个什么呢?放到一个字典里面啊,我们复制一份。 嗯,就留我们的一个 cookie, 瑞凤啊,还有我们的 u a, 就 加这三个就行了。好,我们的一个请求网址 y l 啊,这个 y l 的 话不用复制那么长啊,我们给它分开写啊,给它分开写,打问号前面的话作为它的链接啊,就是它的一个链接地址 啊,这是他的链接地址,然后问号后面的话啊,就是他的一个长行参数,长行参数的话我们也单独用一个。什么呢?也单独用一个字典去接收啊,他的这个长行参数我们直接给他复制过来, 复制然后呢粘贴。哇,这种的话就它的一个查询参数啊,查询参数然后发送请求的话,我们需要导入一个什么导入数据请求的一个模块, import 一个 request 啊,如果说直接全部复制长的可以吗?可以啊,但是,呃,你不好去分析他的一些,你像复制全部复制这么长的话,你看他的一些参数的话,看的不是很舒服啊,但是你分开写的话,他每一个参数是什么都是比较明显的,那每一个参数对应的是什么东西?就是看的比较清楚啊, 那如果说你是直接复制这么一长串的话,你看起来是不是特别密密麻麻的就不太好看了?不太好看, 那我们发送请求 request, 点上一个 get 请求约样,把自己参数全部传进去啊,我们的参数,我们的链接,我们的请求头啊,请求头伪装的一些内容全部给它传进去,再用一个变量名去接收就可以了。 好吧,这个话就是我们发送请求的一个代码内容,获取数据的话,我们这个地方只能获取它的一个文本啊,没办法获取它的一个节省,因为它这边返回的一个数据的话,它不是一个标准的节省数据格式 啊,它不是一个标准的啊,呃,它是有这种有一个小括号括起来的,对不对?那这个就是非标准的计算数据格式,所以呢?嗯,在我们获取数据的时候只能获取响应的一个文本数据, text 等于 response 点 text, 然后 print 打印一下, 我们打印输出,看一下我们这个数据是否有返回右键运行。 那这边的话就是调用成功。对,那我们相关的一个数据的话就出来了啊,相关这个数据就出来了 啊,出来之后的话,哎,我们就可以把呢,我就相当于我现在是已经把整个响应数据就全部拿到了啊,整个响应数据都拿到了,但是我们要的话只是商品的一部分信息啊,所以得去做一个解析 啊,所以得去解析数据,把我们所需要的内容给它取出来,然后解析数据的话。呃,这边我所选择的话就先把什么呢?先把它中间这个小括号里面的接收数据给它匹配出来 啊,把这个括号里面的数据给它匹配出来,匹配出来之后的话我们再给它转成接收数据,然后再通过字典取值的方法去取啊,所以我们要取数据的话,我们先导入正则, 正则表达式模块 import r e。 导入进来之后的话,我们提取什么呢?提取接收数据啊, 啊,把这个接收数据给它取出来。 text 接收 r e, 点上一个 file, 从哪里匹配?从这里啊? 从这个地方开始匹配,然后这个括号的话给他。嗯,转移掉啊,转移掉,转移掉,然后,然后后面的啊,从这括号后面的所有内容我们都要啊,就是用个点心代替,就相当于表示什么呢?表示从这个括号开始,到后面的所有的内容我们全部都要, 然后这个数据从哪里匹配的?是不是从这个 text 里面匹配的啊?从这个 text 里面啊,去匹配。从什么呢?从这个六小括号开始,后面内容全部都要啊,然后匹配出来之后他会返回一个列表,返回列表,那我们就取个零, 取个零就是根据列表所用位置取值啊,把它取出来,取出来之后的话,最后的这个反括号啊,我们就不要,就直接写个切片啊, 负一啊,这样的话我们最最后这个反馈就不要,那这样的话我们就得到了这个键数据啊,得到这个键数据,得到之后的话,哎,我们再给他转成什么呢?字典数据,这里拿到的话是一个字母串啊,然后再给他转成字典。转字典的话我们要导入一个矩阵的模块, import 节省,那就是接生 data 等于什么呢?接生点上 lots, 然后我们 text 杠节省,然后 print 一下, 打印啊,那这边的话就不打印了,来运行, 那这样的话是不是他就变成了一个什么呢?变成了我们这种字典的一个数据了。变成字典数据,然后我们拿到这个数据之后的话,那我们接下来就按照字典取值的方式嘛,把什么呢?我们想要的数据的话都是在这一个里面,在这个列表里面, 所以我们就通过字典取值的方式啊。提取什么呢?提取商品信息所在的列表啊。所在列表所在列表的话就哪个就这个在哪个里面?在这个 data 里面啊。 接收 data 取什么呢?取 data data 下面的这个。 呃采集数据之前的话需要登录吗?啊需要登录啊,你不登录的话你看不到数据啊。淘宝的话可能不登录是看不到数据的,但是你你就加上什么呢?登录账号的 cookie 就 可以了。 好吧。呃像淘宝的话啊,大家的问题就是采集之前需要登录嘛?之前啊需要登录嘛? 啊。这个的话其实要根据网站,根据网站情况,就比如说我们基本啊今晚的案例的话就是淘宝吗?淘宝的话是需要登录的啊。需要登录,因为你不登录的话啊不登录是看不到数据的。 不登录账号啊,查看啊。呃看不到数据信息的啊,是看不到的啊。如果说你能够不登录能够看到的话那你可以不登录。好吧不登录啊。所以说我们在采集的时候啊采集的时候需要携带什么呢?登录啊账号的一个 cookie 啊。进行一个什么呢?请求啊。点心行不行?点心问行不行?点心问的话可能会有问题。那就关于我们匹配的话使用点心问什么行不行 啊?这个话是可能会出问题啊可能会出现问题。 那可能会出现问题。为什么呢?给大家解释一下为什么我们刚刚的话为什么要在这里地,在这个地方的话需要用到一个点心啊,不是用一个点心问。呃,这里的话我得需要需要新建一个文件给大家去做一个,做一个反例啊, 做一个反面的例子啊,比如说我们复制一份 我们刚刚的话是这样子的,对不对?哎?啊?我们的一个 name 对 应的什么呢?对应的木木子,然后他的一个 微信,对的 python 幺零零幺零, ok 啊?可能我们常规如果说是这样子的一个情况的话啊,如果说我们的数据是这种情况的话,是没有任何问题的啊,是没有任何问题的 啊,是没有任何问题。就是你用点心的话是可以的啊,就是你用点心问的话是可以的。比如说我们把这个复制过来 import, 哎,对吧?在这里的话你用一个什么呢?用一个这个点心问是完全是 ok 的 啊,完全是 ok 的。 那我们这里用个 text 给你看一下啊。 那如果说是这种情况的话是 ok 的。 然后的话你需要考虑到一个点啊,考虑到什么点呢?就因为我们这些商品标题,如果说它中间这些商品标题里面带了一个括号的话,你用点心问的话就会出问题啊。就比如说我的数据在这个地方啊,多了一个什么呢? 啊?多了一个女,这里多了一个括号。那你再来看一下这个数据它是不是会有问题?是不是会有问题? 是不是啊?他就相当于什么呢?从第一个括号开始到第二个第一个反括号结束,就他只会匹配到这一段数据,他只会匹配到这一部分数据, 是不是?就所以说你要防止什么呢?防止万一它里面中间某一个地方是出现了一个反括号呢?是加了一个括号的呢,对不对?所以说你要考虑到这个情况啊,考虑这种情况,所以我们这个地方说了,你如果说使用这个点心的话,可能会出现这种问题啊,会出现这种问题就是会导致一个数据匹配不全 啊,可能啊,会导致数据匹配不全, 就这么个原因。所以我们会选择什么呢?啊?会选择直接啊,直接通过我们的一个点心,就相当于他是会把匹配到最后, 对吧?从这个括号到到最后全部拿到,但他是不是多了一个反括号?所以我们再做了一个什么呢?做了一个切片啊,做了一个切片,把这个反括号给它删掉 啊,给他删掉,懂了吧?啊?所以说在这个地方的话为什么得用点心的原因在这里啊?就是因为考虑到如果说你用点心问的话,他可能会存在一些匹配不全的情况啊,好吧,还有其他问题吗? 还有没有其他的一些疑问想问的? ok 啊,那我们拿到这个回到这里啊,回到我们这边来啊,我们这边的话是通过字典取值嘛?然后提取到商品信息所在的一个列表啊,取到这个列表之后的话,我们直接通过负循环便利 提取列表里面的元素。 for index。 in 什么呢? in 它啊? print 打印一下这个 index 啊,这样的话就相当于什么呢?我们把这个商品数据每一条信息就全部给它拿出来了, 那就全部每一条数据就单独给它拎出来了啊?单独拎出来的话,它这个 index 的 话,它还是一个什么呢?还是一个这种字典的一个形式,还是这个字典的一个形式,对不对啊?所以我们就在这个循环当中啊,在循环中 提取具体的数据信息,保存到字典中,我们创建一个字典啊,给它进行写入,比如说标题, 标题,我们看一下它是在哪个地方啊?我们在这边看吧,看一下。 嗯,首先这边没什么数据啊,这个热商榜,呃,这什么热销榜?第二名,如果说你要的话可以取一下,我们就拿一些基本的数据就行了。嗯,它的 id 啊,这个是它的 id, id 的 话我们还是拿一下吧。商品 id 啊, 呐,这个的话是商品 id, 然后这个是店铺 啊,店铺的一个名字,然后这个是价格啊,价格, 价格。嗯,还有呢?还有它的城市啊,城市, 嗯,还有呢?我们的一个销量,就是我们看到什么就取什么,这个是销量啊,然后这个是标题啊,这个是标题抬头, 这个是标题。基本的数据的话就这些啊,基本数据的话就就这些东西,你就看到什么就取什么就行了。根据冒号左边取,冒号右边啊,其他东西你要的话你就自己去取了。好吧,我就拿到这些最基本的信息, 然后这个标题里面的话是含有这个标签的啊,这个标签的话我们就手动通过什么呢?通过 replace 去替换了啊? 通过这个 replace 给它进行一个简单替换。还有这个 span 标签,看到没有?它是有这个 span 标签的,我们就直接给它替换掉。但我们也可以直接用正则啊,直接用正则给它替换的话也行啊, 但我们用最简单的嘛,就字幕窗替换的一个方法,还有的话就是这一个城市啊, 那这个城市的话,我们是,呃有这个数据的吧?对不对?这个城市啊,那这里有个我们的一个城市数据,城市数据的话它有一个地区有一个,有个城市有一个省份,嗯,所以我们可以给它稍微区分一下啊。 啊?稍微区分一下,那这个的话是我们的一个城市用个 l l 音符啊,等于它点上一个什么呢? split 分 割啊,以这个空格去作为一个分割,当因为它有一些的话是有省份,有些是没有省份的啊,湖南长沙你可以看到啊, 有些是有地区,有些是没有地,就是没有城市的,你看这个是湖北,这个是湖,湖南长沙,他是有两个的。对啊,所以我们在这个地方的话需要判断一下,如果说 啊,如果说你给他分割之后的话,他返回的是两个元素,那就说明他是有我们的一个省份的啊,有我们的一个省份的啊,省份的话我们就是 啊,用个 l 吧,然后我们的一个城市的话就用个 ct 啊,就这里变量名的话就无所谓了,大家知道就行了。这是个 e 啊,这个的话就是省份啊,然后这个的话就是我们的一个城市, ok 啊,否则的话如果说他没有两个,对吧?他否则只有一个嘛?没有两个,不是两个就是一个啊,一个的话他就相当于只有省份 啊,城市的话那就是未知的啊,就是未知的,就不知道它是。呃,就比如说像这个,你不太清楚它是湖北哪个城市的,就是未知的?对,所以我们给它拆分一下。呃,城市的话就是我们的一个 city, 然后省份的话就是我们的 l 啊,这个编码编名无所谓的,咱们来打印一下这个 d i t 啊。打印这个 d i t 的 话啊,它等一下应该会报错的,等一下的话应该会报错啊,来我们运行一下。 哎。啊?报错了,看到没有啊?在某个地方啊,他是会缺少了一个什么呢?嗯,缺少了一个城市数据啊,在某一条数据当中他是缺少了这个城市数据的,看到没有, 对不对啊?缺少了这个城市的一个数据信息啊。嗯,我看一下他是不是有哪个地方是是没有城市数据的。 这句话是少了一个城市数据信息啊。那我们就这样子判断啊,我们这样子去做处理啊,就我们可以来看一下。嗯,做一个什么呢?做一场补货 try 啊,做一个 try 的 一场补货。 s, 我 们的 e 啊, print 我 们的 e 啊,看一下报错信息啊,报错信息看到之后的话我们再打印一下它那个数据啊,导入一个格式化输出的模块, 格式化输出的一个模块,因为不然我们不太清楚它是具体哪一条数据出现的报错,对不对?所以我们要去做处理的话,我们就要得知道它具体是哪一条信息出现了一个报错,然后我们给它退出一下来运行。 ok 啊?在这个地方出现了一个问题啊,这个数据他是一个什么东西呢?对啊,他是说没有这个标题,对,没有这个玩意,就是没有我们的一个。呃,那个什么 啊?就这个嘛,对不对?我们省份数据是没有的啊?为什么会没有呢?因为他在这个地方返回的这一部分数据,他是一个什么什么非常不满意啊?非常满意,对本次搜索体验满意吗?啊?你觉得哪里不好?对啊,错误提示,他这个东西是什么呢?这个东西其实就是我们页面的一个调查 啊,这是在我们的页面当中,你看他会中间突然多加了一条这个玩意啊,多加了一个这个玩意的一个数据出来, 是不是啊?多加了一个这个东西啊?所以这玩意的话你就不用管他啊,不用管他,我们直接给他跳过就行了,对吧?像这种情况的话我们就直接干嘛呢啊?最简单的来说,直接给他跳过啊,做这个异常补货,直接给他跳跳过就行了啊,你不用管他 啊,也不用管他的一个 bug, 对 吧?就直接这样跳过就行了啊,做一个简单的异常补货,那这样的话我们的数据是不是就都拿到了? 因为这条数据本来就不是我们想要的,他只是一个满意度调查而已啊,跟我们跟我们实际的商品数据有关系吗?没有关系啊,没有关系,所以我们是可以直接跳过不要这条数据的。那这边的话,我们的一个商品信息的基本内容的话,我们就都给他啊,获取出来了 啊,基本的一些信息啊,它的一个标题,商品 id、 店铺价格啊,就是它的一个省份城市以及它的销量情况啊,我们就都拿到了。如果说你需要一些其他的数据的话,呃,你可以根据根据自己的喜好去选啊,比如你要它的一个封面图,那这个话应该就是它的一个图片。 啊,这个话应该就是商品的一个图片。啊,那商品的图片如果说你需要的话,那你可以把这个链接给他取一下,那好吧?啊?这个话就是我们的一个数据解析的一个代码。