使用python采集VIP会电商平台商品数据②单页数据采集

 获取标头:

响应:服务器返回的数据

预览:查看响应得数据

载荷:查询参数/请求参数

标头:查看请求的网址/请求的标头/请求方法

数据包地址:https://mapi.vip.com/vips-mobile/rest/shopping/pc/product/module/list/v2

一页的数据放在三个链接;

productIds::120个商品ID->找的商品的ID

获取商品所有ID.

-----------------------------------------------

"""
使用模块requestscsv
代码步骤发送请求获取数据解析数据保存数据
第一次请求:请求商品ID数据包->获取120个商品ID
第二次请求:获取商品详细数据链接"""
# 导入数据请求
import requests
# 导入正则
import re
# 导入csv
import csv
# 创建文件对象
f=open('7_vip商品.csv',mode='w',encoding='utf-8',newline='')
csv_write=csv.DictWriter(f,fieldnames=['标题','品牌','原价','折扣','售价'])# 发送请求 模拟浏览器
headers={'Referer':'https://category.vip.com/','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'}
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_BJ','fdc_area_id':'101101101','client':'pc','mobile_platform':'1','province_id':'101101','api_key':'70f71280d5d547b2a7bb370a529aeea1','user_id':'','mars_cid':'1713279016912_3b96c6831122abbb85e7319098623bdb','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','_':'1713279066798'
}
# 发送请求
response=requests.get(url=url,params=data,headers=headers)
# 获取服务器返回的响应数据
"""
response.text获取响应文本数据
response.json()获取想的json数据->数据是由{}/[]包裹起来的
response.content获取响应二进制数据 ->图片/视频/音频/特定格式
"""
info = response.text
# 解析数据
products=re.findall('"pid":"(\d+)"',info)
# 对商品ID进行切片处理
string_1=','.join(products[:50]) # 提取前50个ID
string_2=','.join(products[50:100]) # 中间50个ID
string_3=','.join(products[100:]) # 后def GetInfo(productIds):# 第二次请求link='https://mapi.vip.com/vips-mobile/rest/shopping/pc/product/module/list/v2'# 查询参数params={'app_name':'shop_pc','app_version':'4.0','warehouse':'VIP_BJ','fdc_area_id':'101101101','client':'pc','mobile_platform':'1','province_id':'101101','api_key':'70f71280d5d547b2a7bb370a529aeea1','user_id':'','mars_cid':'1713279016912_3b96c6831122abbb85e7319098623bdb','wap_consumer':'a','productIds':productIds,'scene':'search','standby_id':'nature','extParams':'{"stdSizeVids":"","preheatTipsVer":"3","couponVer":"v2","exclusivePrice":"1","iconSpec":"2x","ic2label":1,"superHot":1,"bigBrand":"1"}','context':'','_':'1713279066807',}# 发送请求json_date=requests.get(url=link,params=params,headers=headers).json()# 解析数据 字典取值for index in json_date['data']['products']:dit={'标题':index['title'],'品牌':index['brandShowName'],'原价':index['price']["marketPrice"],'折扣':index['price']["saleDiscount"],'售价':index['price']["marketPrice"],}csv_write.writerow(dit)print(dit)print(json_date)
# 前50条
GetInfo(productIds=string_1)
GetInfo(productIds=string_2)
GetInfo(productIds=string_3)#

使用模块

  • requests: 用于发送网络请求和获取数据。
  • csv: 用于读写CSV文件。

代码步骤

  1. 发送请求:向服务器发送请求,并获取数据。
  2. 解析数据:通过正则表达式解析响应文本,提取商品ID。
  3. 保存数据:将解析后的数据保存到CSV文件中。

第一次请求:请求商品ID数据包

  • 发送GET请求至指定URL,携带指定查询参数。
  • 获取服务器返回的响应数据,使用正则表达式提取商品ID。

第二次请求:获取商品详细数据链接

  • 构建第二次请求的URL和查询参数。
  • 发送GET请求至第二次链接,获取商品详细数据。
  • 解析JSON格式的数据,提取商品的详细信息并写入CSV文件。

----------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/821677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Servlet-Filter实现反爬虫

以前用DotNetCore实现过反爬虫功能。在tomcat里面可以利用Servlet的Filter类实现请求的控制来达到反爬虫功能,进而增强JRT的web安全。 实现黑名单过滤器,对在黑名单列表的IP的所有请求都跳转到警告页面,业务各种请求自行定义加入黑名单 /* …

Yolo-world+Python-OpenCV之摄像头视频实时目标检测

上一次介绍了如何使用最基本的 Yolo-word来做检测,现在我们在加opencv来做个实时检测的例子 基本思路 1、读取离线视频流 2、将视频帧给yolo识别 3、根据识别结果 对视频进行绘制边框、加文字之类的 完整代码如下: import datetimefrom ultralytics …

电竞陪玩系统开发平台搭建(小程序,公众号,app)线上线下皆有,线下计算距离。

六大核心功能 1.游戏陪练:可以选择当下火爆的游戏内容,选择游戏大神、职业玩家进行陪练,也可约附近路人玩家或是身边的小伙伴语音组队开黑,一起享受边玩游戏边吐槽的无限乐趣。 2.约玩交友:除了游戏陪玩功能,系统还设置了单独的语…

SpringBlade dict-biz/list SQL 注入漏洞复现

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…

Python LEGB规则

Python在查找“名称”时,是按照LEGB规则查找的: Local: 指的就是函数或者类的方法内部 Enclosed: 指的是嵌套函数(一个函数包裹另一个函数,闭包) Global: 指的是模块中的全局变量 Bu…

含多种需求响应及电动汽车的微网/虚拟电厂日前优化调度

1 主要内容 程序主要建立一个微网/虚拟电厂的日前优化调度模型,以燃气轮机运行成本、购售电费用、电动汽车电池损耗成本以及需求响应费用之和为目标,在日前经济调度模型中,加入了电动汽车模型,考虑了电动汽车出行规律以及充放电规…

python之flask安装以及使用

1 flask介绍 Flask是一个非常小的Python Web框架,被称为微型框架;只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各种扩展库的使用。 2 python…

超越GPT-4V,苹果多模态大模型上新,神经网络形态加速MLLM(一)

4月8日,苹果发布了其最新的多模态大语言模型(MLLM )——Ferret-UI,能够更有效地理解和与屏幕信息进行交互,在所有基本UI任务上都超过了GPT-4V! 苹果开发的多模态模型Ferret-UI增强了对屏幕的理解和交互&am…

【触想智能】如何选购到一款合适的工业电脑一体机

工业电脑一体机是专为工业环境而设计的一种工业计算机。工业电脑一体机和普通的计算机不一样,它对产品的参数性能要求很高,因为它们通常会运行在高低温、电磁干扰、高粉尘、湿度大的恶劣环境中,所以相应的要求工业电脑一体机必须具备良好的宽…

UE5下载与安装

官方网站:https://www.unrealengine.com/zh-CN 1、下载启动程序安装包。 登录官网后,点击首页右侧下载按钮下载Epic Games启动程序的安装包,如下图: 2、安装启动程序。 双击步骤1所下载安装软件,如下图:…

vivado AXI 接口事件

AXI 接口事件 在 Vivado 硬件管理器中 , 如果使用 System ILA IP 对设计 AXI 接口进行调试 , 那么“波形 (Waveform) ”窗口会显示对 应于 System ILA 所探测的接口的接口插槽、事件和信号组。正如下图所示 , “ Waveform ”窗口会显示…

中立分析腾讯云故障相关的事件

最近腾讯云的故障,让一堆云计算爱好者兴奋地远看指点江山、近看沐猴而冠。我比这群爱好者们更了解云计算,但是我尊重我的读者,你们从我这里看到的科普信息,不仅仅只有情绪价值。 在信息爆炸的时代,大家关注和信任某个媒…

三道模拟题

P1003 [NOIP2011 提高组] 铺地毯 题目描述 原题点这里-->P1003 [NOIP2011 提高组] 铺地毯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺…

【C++】哈希一

这篇博客要说的是哈希算法,哈希又称为散列,它是将存储的值和存储的位置建立起关联关系的一种算法,或者说是一种将任意长度的数据映射为固定长度的输出的算法。 什么意思呢?我们来看一个例子:比如说我们要存储1&#xf…

【SLAM】在Win10上实现Nerf-Pytorch【GPU版】

文章目录 ReadMe安装依赖运行下载两个示例数据集:lego和fern训练一个低分辨率的Lego NeRF:训练一个低分辨率蕨类植物NeRF:更多数据集预训练模型可复现实现1、下载nerf-pytorch工程2、安装依赖3、下载数据4、运行lego NeRF:ReadMe Github链接 NeRF (神经辐射场)是一种在合成…

基于变压器的手持式超声图像中乳腺病变的分类不一致性测量表征

超声成像作为一种替代的低成本、易于获取的非电离成像方式已显示出巨大的前景,可用于乳腺癌筛查。特别是,随着最近便携式设备的出现,超声检查预计将在中低收入国家中越来越普及。然而,超声成像在乳腺癌诊断中的可靠性高度依赖于操…

竞赛 基于GRU的 电影评论情感分析 - python 深度学习 情感分类

文章目录 1 前言1.1 项目介绍 2 情感分类介绍3 数据集4 实现4.1 数据预处理4.2 构建网络4.3 训练模型4.4 模型评估4.5 模型预测 5 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于GRU的 电影评论情感分析 该项目较为新颖,适合作为竞…

【数据结构|C语言版】双向链表

前言1. 初步认识双向链表1.1 定义1.2 结构1.3 储存 2. 双向链表的方法(接口函数)2.1 动态申请空间2.2 创建哨兵位2.3 查找指定数据2.4 指定位置插入2.5 指定位置删除2.6 头部插入2.7 头部删除2.8 尾部插入2.9 尾部删除2.10 计算链表大小2.11 销毁链表 3.…

记录一下hive跑spark的insert,update语句报类找不到的问题

我hive能正常启动,建表没问题,我建了一个student表,没问题,但执行了下面一条insert语句后报如下错误: hive (default)> insert into table student values(1,abc); Query ID atguigu_20240417184003_f9d459d7-199…

【Image captioning】论文阅读九—Self-Distillation for Few-Shot Image Captioning_2022

摘要 大规模图像字幕数据集的开发成本高昂,而大量未配对的图像和文本语料库可能有助于减少手动注释的工作。在本文中,我们研究了只需要少量带注释的图像标题对的少样本图像标题问题。我们提出了一种基于集成的自蒸馏方法,允许使用不成对的图像和字幕来训练图像字幕模型。该…