首页 网络编程正文

从海量数据中提取汽配商城商品属性和值的方法

kumb 网络编程 2019-11-23 15:52:42 820 0

汽车配件商品的产品属性选项,主要是根据对阿里汽车的大量数据分析,确定装饰、导航、配件、装潢和洗车美容等十几个品类的主要参数,供后期开发和测试人员使用。

car_class.jpg

一、 商品数据采集

天猫商品都将参数设置在详情页的顶部,这样我们只需要在八爪鱼里写好采集流程,按照不同的商品品类进行抓取,也可以将商品分类写到搜索框里进行统一抓取。

values.jpg

然后使用如下SQL语句创建所需要的数据表,方便后续对数据进行处理:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for tmp_tmall
-- ----------------------------
DROP TABLE IF EXISTS `tmp_tmall`;
CREATE TABLE `tmp_tmall`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `price` decimal(10, 2) NULL DEFAULT NULL,
  `image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `records` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
  `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  `cat_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9726 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Compact;

SET FOREIGN_KEY_CHECKS = 1;

二、数据处理

我们将导出的Excel表格数据导入到创建的tmp_tmall这张表里,然后对属性值按分隔符拆分成多行,使用到的一张二维序数表在之前的博文中有创建方法,这里主要是拆分语句的编写:

insert into tmp_wash(tyre_id,tyre_name,main_images,tyre_url,order_number,key_valuse) 
SELECT
	r.`id`,
	r.`title`,
	r.`image`,
	r.`url`,
	x.`id` AS idx,
	substring_index( substring_index( `records`, '</li>', x.`id` ), '</li>',- 1 ) AS piece 
FROM
	`tmp_tmall` r
	INNER JOIN `tmp_idx` x ON x.`id` <= (
		char_length( `records` )- char_length(
		REPLACE ( `records`, '</li>', '' ))) DIV char_length( '</li>' ) + 1 
WHERE
	r.`records` != '' and r.id > 8783
HAVING
	`piece` != '';

将参数属性处理成多行后,每个键值对中都由小写的冒号进行选项和值进行分割,还需要使用函数将其拆分成两列,为了和后续的商品ID进行关联,将产品ID和采集到的商品URL值一并写入最终表:

insert into tmp_tyre_final(tyre_id,tyre_name,main_images,tyre_url,order_number,tyre_key,tyre_valuses,cat_type)
SELECT
	tyre_id,tyre_name,main_images,tyre_url,order_number,
	SUBSTRING_INDEX(key_valuse, ':', 1) as tyre_key,
	SUBSTRING_INDEX( SUBSTRING_INDEX( key_valuse, ':', 2 ), ':', - 1 ) as tyre_valuses,
	'清洗'
FROM
	tmp_wash;

三、数据分析

最后我们根据采集到的几百万商品数据,形成选项和值的排行榜,最终的数据库结构如下图所示:

option.jpg

使用如下语句进行分组和排序:

SELECT
	cat_type as '商品分类',
	tyre_key as '选项名称',
	Count(*) as num
FROM
	tmp_tyre_final 
GROUP BY
	cat_type,
	tyre_key
ORDER BY
	num DESC;

得到的分组排行榜如下所示:

list.jpg

数据分析其实就在我们身边,记得在BBC拍摄的纪录片《大数据时代》里,警方利用大数据预测到小区里犯罪的发生,股票交易员利用大数据找到了发财的方法,天文学家利用大数据发现了新的小行星。非常有意思,值得推荐看一看!

我们致力于为三农(农业、农村、农民)提供专业物联网解决方案,同时也提供应用软件、微信小程序、手机App、企业网站的开发和跨境电商建站、网络营销等服务,站长微信号(mywit_net),添加后备注“黎辉物联网”,如有相关需求也可通过电子邮件(12tc@sina.cn)与我们取得联系

本站内容均来自互联网,如有涉及到侵权行为,请你及时与站长联系删除!

本文链接:https://kumb.cn/9.html

发表评论

评论列表(0人评论 , 820人围观)
☹还没有评论,来说两句吧...