最近我老婆忙着分析淘宝、京东上鞋柜的销售情况,但是手头没有好用的爬虫程序,只能手动去做数据的采集与分析。
这多累啊,因此我为她准备了一套“入门级”的数据清理操作流程,她觉得还蛮好用的。因此,作成《数据清理作坊》系列短文,以飨读者。
数据采集
- 首先,去京东搜一下鞋柜,按照销量排序。
- 将搜索结果页的HTML文件保存到电脑上,注意,一定得是HTML格式。
(此处没有插图)
打开数据
- 使用VSCode打开这个HTML。
没有VSCode的同学,请从官网下载:https://code.visualstudio.com。 - 首先,观察一下文件中是否看得到汉字。
如果看得到汉字,说明不需要进行格式转换;
如果看不到汉字,反而发现有很多\u6dd8\u5b9d
之类的反斜杠字符串,那说明文字现在都是Unicode格式,需要转换一下。
格式转换我们可以直接从VSCode的插件库中下载一个,例如“UnicodeToChinese”。
使用时,直接全选文件的所有内容,然后按Command + Shift + P
,在弹出的指令框中输入unicode即可找到对应的命令,选中命令后,回车键执行即可。
初步清理数据
- 直接分析一波
京东的页面和淘宝的页面差别很大,它整个都是由HTML写就的。
也因此,我们完全可以根据DIV元素的名字(ID)来判断哪一部分才是有用的内容。
直接跟大家说一下结果吧:
(1)往下翻,或者直接搜索<div id="J_goodsList" class="goods-list-v2 gl-type-3 J-goods-list">
,从这一行开始往下,就是我们得到的数据。所以,把它上面的删干净。
(2)再往下翻,<div id="J_scroll_loading" class="notice-loading-more"><span>正在加载中,请稍后~~</span></div>
,这一行开始,以及往下的,都是要删掉的。
中间剩下的就是数据内容了。 - 数据去格式化
为什么要去格式化呢,因为接下来要用到正则表达式来进行数据处理,而正则表达式遇上回车、制表、空格的时候,会遇见特别多复杂的情况,所以我们直接提前清理掉这些问题即可。
现在打开编辑器里面那个搜索,我们需要删掉一批东西。
(1)首先,打开这个。*符号,这个是正则表达式开关,我们现在需要用到正则表达式。
现在往查找那一栏,输入\n
,这个是换行符,我们现在要把所有的回车清理掉。
点击全部替换。
现在你可能会发现,所有的内容都到了一行中,很难观察。
按Option + Z
,可以让他自动换行。
(2)OK,现在我们把\n
删了,改成\t
。全部替换。
(3)然后关掉正则表达式,输入一个<fontclass="skcolor_ljg">
。\ (5)然后,删掉这个:``。
数据格式化
- 打开正则表达式,在查找框里输入上面这个公式:
(.*?)(<divclass="p-price">.*?<em>¥<\/em><i>)(\d+.\d{2})(<\/i><\/strong>.*?<\/div>)(<divclass="p-namep-name-type-2">)((<atarget="_blank"title=")(.*?)(<em>)(.*?)(<\/em>)(.*?)(<\/i><\/a>))(<\/div>)
你会发现,全文都被查到了,只剩下最末尾一段没查到。
你把没查到的内容删掉。 - 接下来,把替换框中输入:
{"价格":"$3", "商品名称":"$10"},\n
然后全部替换。
数据就会变成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:00 pm