首页 网络编程正文

如何对抓取的汽车之家车辆参数信息进行数据清洗

kumb 网络编程 2019-12-20 11:36:22 914 0

对汽车之家数据抓取方法可参考我的上一篇文章《汽车之家数据采集用到技术知识总结》,这里介绍数据清洗的方法。

一、 车辆参数和选项值对应关系匹配:

汽车之家的JSON文件结构如下图所示:

autohome_json.png

可以看到一个参数存在多个属性值的对应关系,这里需要使用SQL中的笛卡尔乘积,将表中的参数和属性一一匹配,语句如下:

select ser_id , idx ,  f_name,((idx-1)*ser_num+b.id) as group_id
from tmp_car_first_name as a
cross join (select id from sp_idx) as b
where b.id <=a.ser_num

获得的数据集如下图所示:

option_value-1.png

二、 车辆颜色值爬取和数据清洗

汽车之家车辆外观颜色都是纯色的,而内饰颜色有纯色和双色两种,需要抓取的颜色和值如下图所示:

colors.png

使用爬取工具,抓取到颜色名称和颜色值,出现双色存成一个值,待后边进行拆分,拆分的SQL语句如下所示:

SELECT
	UUID( ),
	c.brand_id,
	c.series_id,
	c.id,
	SUBSTRING_INDEX( SUBSTRING_INDEX( b.color_name_one, ';"', 1 ), ';"', - 1 ) AS first_color_name,
IF
	(
		length( b.color_name_one ) - length( REPLACE ( b.color_name_one, ';"', '' ) ) > 1,
	SUBSTRING_INDEX( SUBSTRING_INDEX( b.color_name_one, ';"', 2 ), ';"', - 1 ),
	NULL 
	) AS second_color_name,
	SUBSTRING_INDEX( SUBSTRING_INDEX( b.color_value_one, ';"', 1 ), ';"', - 1 ) AS first_color_value,
IF
	(
		length( b.color_value_one ) - length( REPLACE ( b.color_value_one, ';"', '' ) ) > 1,
	SUBSTRING_INDEX( SUBSTRING_INDEX( b.color_value_one, ';"', 2 ), ';"', - 1 ),
	NULL 
	) AS second_color_value
FROM
	car_color_bak AS b
	LEFT JOIN car_model AS c ON b.car_model_id = c.id

这样单色值存取到第一个字段里,第二个字段设置为NULL,双色值存取到分别存取到第一个、第二个字段里,颜色的清洗到此完成!

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

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

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

发表评论

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