欢迎你,来到电商记的小数据训练课程!你将从本单元开始,展开为期两年的学习旅程,坚持练习,逐步掌握有关代码和数据的知识。

本单元的环节设计如下:

  • 基础知识点:了解JSON数据交换格式
  • 基础练习题:在开发者模式下查看折800淘抢购等移动电商渠道网页中包含的JSON数据包
  • 进阶知识点:学习JSON数据与表格数据的映射关系
  • 进阶练习题:编写VBScript代码,将JSON数据包导入Excel表格

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

网页和移动端APP都大量采用JSON与服务器交换数据,因此,运营人员需要熟悉JSON数据格式,能够采集其中包含的有用信息,并导入到Excel表格。

以下是一个JSON数据包的示例。

{
    "list": [{
        "id": "21340284224",
        "title": "ROMOSS/罗马仕 sense4 正品10000+毫安移动电源 手机通用充电宝",
        "marketPrice": 59.0,
        "price": 59.0,
        "acm": "03054.1003.1.971095",
        "isContract": false,
        "img": "//img.alicdn.com/bao/uploaded/TB1oR_LKFXXXXcdXVXXXXXXXXXX_!!0-item_pic.jpg",
        "_pos_": 1,
        "entityType": "ITEM",
        "scm": "1007.12559.40794.100200300000000",
        "url": "//detail.tmall.com/item.htm?id=21340284224&pvid=6ee7a984-ab5d-468f-90cb-9a07993ccf79&abbucket=_AB-M32_B5&acm=03054.1003.1.971095&aldid=x3eJR2EH&abtest=_AB-LR32-PR32&scm=1007.12559.40794.100200300000000&pos=1",
        "activityTag": false
    }, {
        "id": "41403621283",
        "title": "ROMOSS罗马仕 炫彩纤薄聚合物移动电源 充电宝通用 5000毫安",
        "marketPrice": 49.0,
        "price": 49.0,
        "acm": "03054.1003.1.971095",
        "isContract": false,
        "img": "//img.alicdn.com/bao/uploaded/TB18AZRIVXXXXb5XXXXXXXXXXXX_!!0-item_pic.jpg",
        "_pos_": 2,
        "entityType": "ITEM",
        "scm": "1007.12559.40794.100200300000000",
        "url": "//detail.tmall.com/item.htm?id=41403621283&pvid=6ee7a984-ab5d-468f-90cb-9a07993ccf79&abbucket=_AB-M32_B5&acm=03054.1003.1.971095&aldid=x3eJR2EH&abtest=_AB-LR32-PR32&scm=1007.12559.40794.100200300000000&pos=2",
        "activityTag": false
    }]
}

为了查看网页传输的JSON数据包,我们首先需要设置电商记桌面版或者浏览器插件的开发者模式。

在浏览器地址栏输入https://cdn.dianshangji.com/info_extconfig.html,你将看到如下内容。点击“安装”,在开发者模式下安装数据采集功能模块。

安装成功则提示“OK”,然后点击“打开”,软件将打开一个页面https://cdn.dianshangji.com/ext_collectjson.html,用于显示用户浏览的每个网页的JSON数据包。

本页面https://cdn.dianshangji.com/ext_collectjson.html显示当前浏览器中每个网页所传输的JSON数据包。用户可在浏览任一网页后,回到本页面,点击“刷新列表”进行查看。

浏览器新开一个页面,输入http://m.zhe800.com,显示折800网站的移动端网页。
为了使浏览器模拟成IPhone6手机浏览器,请按键盘F12,并按照下图所示,点击手机图标,然后按箭头所指选择设备类型(responsive/device)为“iphone6”,最后按键盘F5刷新一下页面。如果再按键盘F12,则切换回正常浏览模式。

浏览器页面切换到https://cdn.dianshangji.com/ext_collectjson.html,点击“刷新列表”,可以看到http://m.zhe800.com页面下共有6个JSON数据包。
点击图标4,即第4个数据包查看内容。

4个数据包的内容如图所示,是折800首页的banner所使用的JSON数据。初步观察,是一个数组,每个元素代表banner的图片、标题和链接等。
点击“导出数据”,将该JSON数据包的内容导出至后台运行的电商记智能引擎,随后再进一步导入至Excel表格中。

当电商记智能引擎或者桌面版客户端在后台运行时,导出操作将显示如下结果。否则,请自行安装并运行智能引擎或者桌面版客户端,再继续本训练单元的下一步。
说明:原生Chrome浏览器v52+插件+智能引擎=桌面版客户端。安装了桌面版客户端,不要重复下载安装智能引擎软件包。在小数据训练课程中,如不特别指明,桌面版客户端和智能引擎软件包统一简称为智能引擎。

9页~第11页讲述如何在Excel 2010加载智能引擎。
12页~第16页讲述如何在Excel 2003/2007加载智能引擎。
用户根据自己使用的Excel版本查看相应步骤。
为了将智能引擎的内存数据导入Excel 2010表格,需在Excel 2010中安装一个插件(addin),即“加载项”。
打开Excel 2010,点击“文件”菜单,然后点击“选项”,调出下图界面。点击“加载项”,然后点击“转到”按钮。

在如图所是“加载宏”窗口中,点击“浏览”,然后在浏览窗口中选择智能引擎安装目录的data\desktop文件夹,选中电商记数据导入导出工具.xla文件。

点击Excel 2010的“加载项”菜单,应看到导入JSON数据包按钮,表明Excel插件安装成功。

12页~第16页讲述如何在Excel 2003/2007加载智能引擎。
为了将智能引擎的内存数据导入Excel 2003/2007表格,需在Excel 2003/2007中安装一个插件(addin),即“加载项”。
以Excel 2003为例,点击“工具”菜单,选择“加载宏”。

在“加载宏”窗口中点击“浏览”,然后在浏览窗口中打开智能引擎安装目录下的data\desktop文件夹。

选择电商记数据导入导出工具文件。

在”加载宏“窗口,可以看到多了一项电商记数据导入导出工具,点击“确定”。

在Excel的工具栏中多了一项导入JSON数据包按钮,表明Excel插件安装成功。

点击Excel 2003/2007/2010的导入JSON数据包按钮,将新建一个表格,自动导入智能引擎当前内存中的所有JSON数据包。

Excel表格“sheet4”可以看到第7页中的折800首页banner数据。第一行是列名称title,page,src,time,json,分别代表JSON数据包的网页标题、网页链接、数据包来源网址、采集时间、JSON内容。

按照第5页~第8页的操作,可对任何网站的页面采集JSON数据。
当智能引擎的内存具有1个或多个数据包时,可在Excel中一次性批量导入,每个数据包占据Excel表格的一行。若智能引擎内存为空,则显示如下。

本单元论述的JSON数据采集功能,适用于任何网页。为进一步熟练操作,请自行挑选一些常用网站,按照第5页~第8页的操作进行练习。

练习内容

淘抢购是移动端的重要销售渠道,其数据的时效性比折800更强,对销售的推动作用较为明显。宝贝在进入抢购阶段后,可以观察***件已抢的信息随着时间推移产生数量上的变化,由此估算出宝贝在任一时间段产生的销量。
抢购进行期间,不必刷新https://h5.m.taobao.com/purchase/index.html页面,只需重复点击JSON数据包编号,即可多次采集即时数据,并导出至智能引擎。在练习过程中,注意观察网页的链接、JSON数据包的来源网址、JSON数据包的内容(详见参考答案),为以后实现自动化采集做准备。

参考答案

VBScript是Visual Basic脚本编程语言的简称,语法较为简单,在Excel环境中常用于办公自动化,简称VBA。Excel不仅使用公式进行表格数据的计算,还可以使用VBA进行数据的自动化统计、分析、绘图等多种工作。第17页运行的”导入JSON数据“按钮,就是采用了十多行VBScript代码,从智能引擎读取数据,并放入表格单元。
下面是一段简单VBScript代码示例,其作用是将A1和B1两个单元格的内容交换一下。

Dim temp As Double
temp = Range("A1").Value
Range("A1").Value = Range("B1").Value
Range("B1").Value = temp
为了进行VBA编程,需要在Excel打开Visual Basic编辑器。下面第22页~第24页讲述如何在Excel 2010和Excel 2003/2007中打开Visual Basic编辑器。

点击”文件“菜单,然后点击”选项“,在选项窗口中点击”自定义功能区“,在左侧”所有选项卡“中找到”开发工具“,将其”添加“到右侧的自定义功能区列表中。

点击”开发工具“功能区,然后点击“Visual Basic”按钮。

点击”工具“菜单,然后选择“宏”菜单,点击“Visual Basic编辑器”。

在Visual Basic编辑器的左上角工程列表中,选中“dianshangji_exceladdin”,为防止误操作,脚本代码设置了密码保护,输入dianshangji即可解除保护。

在“dianshangji_exceladdin”的模块目录下点击“JsonImporter”,右侧代码编辑区域显示对应的VBScript代码。图示框中包含的代码,实现了基本的导入JSON数据到表格单元的功能。

本单元论述的VBScript编程技能,适用于处理任何数据。VBScript在后面的训练单元中被广泛使用,它是实现数据化运营的核心工具之一。为进一步熟悉VBScript,请在Visual Basic编辑器中自行编写并运行一些简单的代码,进行高阶练习。

练习内容

淘抢购是移动端的重要销售渠道,其数据的时效性比折800更强,对销售的推动作用较为明显。宝贝在进入抢购阶段后,可以观察***件已抢的信息随着时间推移产生数量上的变化,由此计算出宝贝在任一时间段产生的销量。
抢购进行期间,不必刷新https://h5.m.taobao.com/purchase/index.html页面,只需定期(如每15分钟)重复点击JSON数据包编号,即可多次采集即时数据,并按照第8页和第17页的内容批量导入到Excel表格中。
抢购结束后,所有采集时间点的销量数据均保存在Excel中,编写VBScript代码,从表格中json列的内容中提取出每个宝贝的itemId,salePrice,startTime,endTime,itemSoldNum数值,统一存入新的表格。
对新表格中所有宝贝(或者选定的若干个宝贝),进行销量数据的可视化工作。以采集时间作为X轴,以宝贝ID作为Y轴,可绘制直观的折线图。

代码提示

我是会员,申请入群交流