在当今大数据时代,网络数据挖掘与分析已成为企业决策和产品优化的重要依据。本文将详细介绍如何通过Python爬虫技术采集vivo官网手机数据及用户评论,并进行数据清洗、可视化分析和情感分析的全过程。本教程适合有一定Python基础,对数据分析和网络爬虫感兴趣的读者。
> 本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
一、项目概述
1.1 项目目标
-
采集vivo官网所有手机型号的基本信息(商品名称、价格、型号等)
-
采集各型号手机的用户评论数据
-
对采集的数据进行清洗和处理
-
进行可视化分析,发现产品特点和用户偏好
-
对评论数据进行情感分析,了解用户满意度
1.2 技术栈
-
爬虫框架:Requests
-
数据处理:Pandas + NumPy
-
数据可视化:Matplotlib + Seaborn
-
情感分析:SnowNLP + Jieba
-
数据保存:csv
pip install requests pandas numpy matplotlib seaborn pyecharts snownlp jieba
3. 采集字段
手机基本信息字段表
字段名 | 数据类型 | 说明 | 示例值 |
---|---|---|---|
商品名称 | String | 手机型号全称 | vivo Y300i 8GB+256GB 墨玉黑 |
售价 | Float | 人民币价格(单位:元) | 6499.0 |
商品简介 | String | 产品简短描述 | 全面抗摔金刚盾玻璃|6500mAh超薄蓝海电池|多场景NFC |
详情页 | String | 产品详情页URL | url |
评论数据字段表
字段名 | 数据类型 | 说明 | 示例值 |
---|---|---|---|
用户名 | String | 评论用户昵称 | "数码爱好者" |
用户等级 | Integer | 官网用户等级标识 | 普通会员/白银会员... |
评分 | Float | 用户打分(通常1-5分) | 5 |
点赞数 | Integer | 该评论获得的点赞数量 | 1 |
发布时间 | DateTime | 评论发表时间 | 2025-03-27 |
评论内容 | String | 用户评价文本 | "拍照效果惊艳,夜拍能力超出预期!" |
二、数据采集
2.1 分析目标网站
首先我们需要分析vivo官网的结构,确定数据所在的位置。通过浏览器开发者工具(F12)可以观察到:
-
手机列表页:vivo智能手机官方商城
-
手机详情页:https://shop.vivo.com.cn/product/ + Skuid +?skuId=productid
数据的接口都是异步加载的API接口
2.2 采集思路
首先采集所有的手机基本信息数据,然后提取商品名称、售价、商品简介和详情页。
最主要的是 获取 relaSpuId,然后进行对每一种机型的评论数据进行采集
通过上述采集好所有机型 relaSpuId 列表。通过循环进行所有机型的评论采集
2.3 数据存储
该项目的数据存储都保存为csv的格式
2.4 结果展示
手机基本信息采集了一百多条
大约采集了近七万条评论数据
三、情感分析
SnowNLP 是一个专为处理中文文本设计的 Python 库,基于自然语言处理技术,提供了多种功能,包括分词、词性标注、情感分析、文本转换(简繁转换)、关键词提取、摘要生成等。其核心优势在于对中文文本的处理能力,尤其是情感分析功能。
SnowNLP 的情感分析功能基于一个预训练的模型,能够判断文本的情感倾向是正面还是负面。情感分析的结果是一个介于 0 到 1 之间的浮点数,分数越接近 1,表示文本的情感倾向越正面;分数越接近 0,表示文本的情感倾向越负面。
由于snlp原始是用购物类的数据进行训练得到的模型,然后这次的数据手机购物评论数据,因此该项目就不自主进行模型的学习和训练
from snownlp import SnowNLP
import time
def process1(x):
score = SnowNLP(x).sentiments
return score
df_ = df1['评论内容'].drop_duplicates().to_frame().reset_index(drop=True)
df_['情感得分'] = df_['评论内容'].apply(process1)
基于情感得分绘制得分发布直方图,看出跟官网评论一致,好评居多,但是并没有达到99%那么夸张,只是达到了85%
四、代码
(一)项目代码
<如果您对源码(爬虫+可视化+情感分析)感兴趣(不白嫖)迪迦,可以在评论区留言(主页 \/)伪善,我会根据需求提供指导和帮助>
(二)可视化代码
1 Vivo 不同系列产品价格统计
vivo手机主要覆盖中端市场(1000-4000元),X系列和S系列是主力产品线