本文记录了笔者用 Python 爬取淘宝某商品的全过程,并对商品数据进行了挖掘与分析,最终得出结论。
注:本项目仅以以上几项分析为例。
因淘宝网是反爬虫的,虽然使用多线程、修改 headers 参数,但仍然不能保证每次 100% 爬取,所以我增加了循环爬取,每次循环爬取未爬取成功的页 ,直至所有页爬取成功停止。
说明:淘宝商品页为 JSON 格式,这里使用正则表达式进行解析。
代码如下:
数据清洗、处理这个步骤也可以在 Excel 中完成,再读入数据。
代码如下:
说明:根据需求,本案例中只取了 item_loc,raw_title,view_price,view_sales 这 4 列数据,主要对区域、标题、价格、销量进行分析。
代码如下:
使用结巴分词器,安装模块 pip install jieba:
对 title_s(list of list 格式)中的每个 list 的元素(str)进行过滤,剔除不需要的词语,即把停用词表 stopwords 中有的词语都剔除掉:
因为下面要统计每个词语的个数,所以为了准确性,这里对过滤后的数据 title_clean 中的每个 list 的元素进行去重,即每个标题被分割后的词语唯一。
观察 word_count 表中的词语,发现 jieba 默认的词典无法满足需求。
有的词语(如可拆洗、不可拆洗等)却被 cut,这里根据需求对词典加入新词(也可以直接在词典 dict.txt 里面增删,然后载入修改过的 dict.txt)。
词云可视化需要安装 wordcloud 模块。
安装模块有两种方法:
软件包下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
注意:要把下载的软件包放在 Python 安装路径下。
代码如下:
分析结论:
不同关键词 word 对应的 sales 之和的统计分析
说明:例如词语“简约”,则统计商品标题中含有“简约”一词的商品的销量之和,即求出具有“简约”风格的商品销量之和。
代码如下:
对表 df_word_sum 中的 word 和 w_s_sum 两列数据进行可视化。(本例中取销量排名前 30 的词语进行绘图)
由图表可知:
组合商品销量最高。
从品类看:布艺沙发销量很高,远超过皮艺沙发。
从户型看:小户型沙发销量最高,大小户型次之,大户型销量最少。
从风格看:简约风销量最高,北欧风次之,其他依次是中式、美式、日式等。
可拆洗、转角类沙发销量可观,也是颇受消费者青睐的。
分析发现,有一些值太大,为了使可视化效果更加直观,这里我们结合自身产品情况,选择价格小于 20000 的商品。
代码如下:
由图表可知:
同样,为了使可视化效果更加直观,这里我们选择销量大于 100 的商品。
代码如下:
由图表及数据可知:
代码如下:
由图表可知:
价格在 1331-1680 之间的商品平均销量最高,951-1331 之间的次之,9684 元以上的最低。
总体呈现先增后减的趋势,但最高峰处于相对低价位阶段。
说明广大消费者对购买沙发的需求更多处于低价位阶段,在 1680 元以上价位越高,平均销量基本是越少。
同上,为了使可视化效果更加直观,这里我们结合自身产品情况,选择价格小于 20000 的商品。
代码如下:
由图表可知:
代码如下:
由图表可知:
代码如下:
由图表可知:
代码如下:
热力型地图