最近我老婆忙着分析淘宝、京东上鞋柜的销售情况,但是手头没有好用的爬虫程序,只能手动去做数据的采集与分析。
这多累啊,因此我为她准备了一套“入门级”的数据清理操作流程,她觉得还蛮好用的。因此,作成《数据清理作坊》系列短文,以飨读者。
数据采集
- 首先,去淘宝搜一下鞋柜,按照销量排序。
- 将搜索结果页的HTML文件保存到电脑上,注意,一定得是HTML格式。
打开数据
- 使用VSCode打开这个HTML。
没有VSCode的同学,请从官网下载:https://code.visualstudio.com。 - 首先,观察一下文件中是否看得到汉字。
如果看得到汉字,说明不需要进行格式转换;
如果看不到汉字,反而发现有很多\u6dd8\u5b9d
之类的反斜杠字符串,那说明文字现在都是Unicode格式,需要转换一下。
格式转换我们可以直接从VSCode的插件库中下载一个,例如“UnicodeToChinese”。
使用时,直接全选文件的所有内容,然后按Command + Shift + P
,在弹出的指令框中输入unicode即可找到对应的命令,选中命令后,回车键执行即可。
初步清理数据
- 清理明显的无用内容,只保留数据
我们可以全局地观察一下,发现数据中,除了一开始写的很规矩的HTML外,下面有很多都是白茫茫一片的内容,不符合HTML的语法。
再仔细一看,他们正是用键值对组合而成的商品搜索结果数据。
也就是说,他们就是我们要保留的数据。
我们清理掉这部分数据之前的HTML和之后的其他内容(在一个明显的缩进的后面,虽然也是白茫茫,但是看了看数据都没有价值)。
数据格式化
- 观察数据的特征
然后我们可以发现,除了开头一部分只出现了一次,而其中每条数据的结构都是重复的。
每条数据的开头,必然是:{"i2iTags"
。
怎么知道的呢?其实,想检验一个单词在全文中共出现了几次,可以直接使用搜索工具:Command + F
。 - 进行简单的区隔
所以,搜索这个字符串{"i2iTags"
;
然后呢,你点击搜索框头上那个小尖头,就能切换到文本替换功能,我们吧这个字符串替换一下;
直接把,{"i2iTags"
粘贴到替换框中;
然后呢,你把替换框里面的光标,移动到最头上,也就是最左边;
然后按下Control + Return
,按两次,你会发现这个上面插入了两个换行:
然后点击这个图标,这个是全部替换的意思:
完了你会看到每条数据都跟其他数据分离开了。 - 判断数据的结尾
然后你观察一下第一条数据,他的结尾是什么?
是"risk":""},
。 然后我们知道,这应该是个JSON。
JSON是一种数据组织格式,每条数据以{}
花括号包括,数据与数据之间,则以,
英文逗号作为区分。 - 清理不太明显的无用内容
我们现在,删掉最后那个小逗号,只搜索"risk":""}
,找到最后一个"risk":""}
。
你会发现,这个后面有个]
符号,这个就是JSON的结尾了。
JSON文件在开头和结尾,会使用[]
方括号,将所有的花括号数据进行包裹;需要注意的是,开头的[{
和结尾的}]
之间,不含任何标点符号。
现在把方括号后面的内容都删掉即可,这里的方括号留不留不重要,用的时候现加上也来得及。 现在回到开头,开头没用的东西删掉,剩下的部分就是有效数据了。
数据转换为Excel表格
- 我们在文件的开头和结尾加上
[]
(此步骤可选) - 将文件另存为,起个名字,比如“鞋柜淘宝01.json”
- 将JSON转为CSV格式
这个有两种操作方式:
(1)可以直接通过VSCode的插件完成:
(2)可以通过线上转换工具完成:
https://www.bejson.com/json/json2excel - 保存CSV文件
- 用WPS(不要用Mac Excel,兼容性不好)打开CSV文件,然后另存为XSLX格式
完成
数据的获取已经完成了,对于WPS来说,数据的下一步排序啦、图表化啦,都是简单的事情。
本文由 maemolee 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Nov 28, 2020 at 12:01 pm