Python爬虫+数据可视化:分析唯品会商品数据

本文介绍了使用Python爬虫获取唯品会泳衣商品数据的过程,详细阐述了从抓包分析到发送请求、解析数据、保存数据的步骤。接着展示了通过数据可视化分析商品性别占比、品牌分布、平均价格等关键指标,同时提供了丰富的Python学习资源推荐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

唯品会是中国领先的在线特卖会电商平台之一,它以“品牌特卖会”的模式运营,为会员提供品牌折扣商品。唯品会的商品包括服装、鞋类、箱包、美妆、家居、母婴、食品等各类品牌产品。

这就是今天的受害者,我们要拿取上面的泳衣数据,然后可以做些数据可视化

数据来源分析

1. 明确需求

  • 明确采集网站以及数据
    网址: https://category.vip.com/suggest.php?keyword=%E6%B3%B3%E8%A1%A3&ff=235|12|1|1
    数据: 商品信息

2. 抓包分析:通过浏览器自带工具: 开发者工具

  • 打开开发者工具: F12 / 右键点击检查选择network

  • 刷新网页: 让网页数据重新加载一遍

  • 搜索关键字: 搜索数据在哪里
    找到数据包: 50条商品数据信息
    整页数据内容: 120条 --> 分成三个数据包
    1. 前50条数据 --> 前50个商品ID
    2. 中50条数据 --> 中50个商品ID
    3. 后20条数据 --> 后20个商品ID

已知: 数据分为三组 --> 对比三组数据包请求参数变化规律
请求参数变化规律: 商品ID
分析找一下 是否存在一个数据包, 包含所有商品ID

如果想要获取商品信息 --> 先获取所有商品ID --> ID存在数据包

代码实现步骤: 发送请求 -> 获取数据 -> 解析数据 -> 保存数据

发送请求

我们定义了要爬取的URL地址,并设置了User-Agent请求头,以模拟浏览器发送请求。
使用requests.get方法发送GET请求,并将响应保存在response变量中。

headers = {  
    # 防盗链 告诉服务器请求链接地址从哪里跳转过来  
    'Referer': 'https://category.vip.com/',  
    # 用户代理, 表示浏览器基本身份信息  
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)'  
}  
# 请求链接  
url = 'https://mapi.vip.com/vips-mobile/rest/shopping/pc/search/product/rank'  
data = {  
    # 回调函数  
    # 'callback': 'getMerchandiseIds',  
    'app_name': 'shop_pc',  
    'app_version': '4.0',  
    'warehouse': 'VIP_HZ',  
    'fdc_area_id': '104103101',  
    'client': 'pc',  
    'mobile_platform': '1',  
    'province_id': '104103',  
    'api_key': '70f71280d5d547b2a7bb370a529aeea1',  
    'user_id': '',  
    'mars_cid': '1689245318776_e2b4a7b51f99b3dd6a4e6d356e364148',  
    'wap_consumer': 'a',  
    'standby_id': 'nature',  
    'keyword': '泳衣',  
    'lv3CatIds': '',  
    'lv2CatIds': '',  
    'lv1CatIds': '',  
    'brandStoreSns': '',  
    'props': '',  
    'priceMin': '',  
    'priceMax': '',  
    'vipService': '',  
    'sort': '0',  
    'pageOffset': '0',  
    'channelId': '1',  
    'gPlatform': 'PC',  
    'batchSize': '120',  
    '_': '1689250387620',  
}  
# 发送请求 --> <Response [200]> 响应对象  
response = requests.get(url=url, params=data, headers=headers)  

解析数据

然后,我们定义了起始标签和结束标签,通过循环的方式遍历文本&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值