【接口流程分析】唯品会WEB端

唯品会WEB端

来看看唯品会是怎么回事,

地址:aHR0cHM6Ly93d3cudmlwLmNvbS8=
https://github.com/Guapisansan/gpss_learn_reverse 代码在这里,会持续更新逆向案例

免责声明: 此文档,以及脚本,仅用来对技术的学习与探讨,如有冒犯,请联系作者电话,微信13933566015进行删除

目的

【接口流程分析】唯品会WEB端_第1张图片

这里点击商品分类,点击女装,男装,内衣, 随便点一个连衣裙

【接口流程分析】唯品会WEB端_第2张图片

弹出新网面,10000件商品 84页。

流程分析

刷新一下弹出的列表页。来搜索一下 “2023夏季新款法式优雅” 这个关键字

【接口流程分析】唯品会WEB端_第3张图片

这里直接可以搜索到一个接口

【接口流程分析】唯品会WEB端_第4张图片

vips-mobile/rest/shopping/pc/product/module/list/v2 这个接口返回的信息,我们通过模拟查看参数,

【接口流程分析】唯品会WEB端_第5张图片

这里通过测试,删减参数的方式去除不必要参数,

callback: 貌似是回调函数,不同接口因该不一样 (可以不动)

app_name: 应用名称 (可以不动)

app_version: 应用版本 (可以不动)

warehouse: 仓库 (可以不动)

fdc_area_id: 区域ID (可以不动)

api_key: 密文,需要解决。

productIDS: 产品id 列表 需要解决。

scene: 规则模式 (可以不动)

standby_id: 看不懂,非加密字符,暂不解决

所以经过分析,目前需要解决的只有api key 和 productid 列表

getMerchandiseDroplets1:api_key

先全局搜索api_key, 看看效果

【接口流程分析】唯品会WEB端_第6张图片

这里看似是写死的字符串,好几个JS文件都是 写死的api_key,有可能是定期更换,目前看来是固定的参数,所以就先不管了,需要定期观察。

getMerchandiseDroplets1:productids

【接口流程分析】唯品会WEB端_第7张图片

这些id猜测是对应不同的产品,

【接口流程分析】唯品会WEB端_第8张图片

一共有50个产品

【接口流程分析】唯品会WEB端_第9张图片

而在接口列表里也印证了这一点,所以找到哪里提供的这些产品id。随便搜索一个,6920371236954495889

【接口流程分析】唯品会WEB端_第10张图片

还是同样的vips-mobile/rest/shopping/pc/product/module/list/v2接口,需要注意的是这次call_back的参数变成了 getProductIdsListRank 。

看一下相应

【接口流程分析】唯品会WEB端_第11张图片

里面有120个pid 前五十个正好和上面的可以对应起来。

往下滑动页面看看,能不能触发后面的产品id。

【接口流程分析】唯品会WEB端_第12张图片

所以这个触发流程是, 浏览器刷新页面,先产生getProductIdsListRank 列表有120个产品id,触发第一个getMerchandiseDroplets1 取50个产品id,

再通过下滑页面触发后面的50个,20个。继续看getProductIdsListRank 接口的参数

getProductIdsListRank:接口分析

【接口流程分析】唯品会WEB端_第13张图片

这里通过测试,删减参数的方式去除不必要参数,

【接口流程分析】唯品会WEB端_第14张图片

和上面相同的参数就不再介绍了,

abtestId:看不懂,暂时不动

mtmsRuleId:什么规则id,看不懂暂时不懂

filterStock: 筛选库存???因该用不到

sort:排序用不到

pageOffset:分页

salePlatform:销售平台用不到

清空一下请求 在重新刷新:

【接口流程分析】唯品会WEB端_第15张图片

发现参数只有pageoffset变了,所以其他参数我们不动就可以了。一页120个产品正好对应起来了。

【接口流程分析】唯品会WEB端_第16张图片

这里可以知道mtmsRuleId因该就是产品类型,产品类型的id,我们可以搜索一下看看能不能找到,在这个页面没有搜到,

猜测:在主页点进去的大概率在主页请求的,去主页再测试一下

【接口流程分析】唯品会WEB端_第17张图片

把鼠标放在女装这里,

【接口流程分析】唯品会WEB端_第18张图片

触发了接口,

【接口流程分析】唯品会WEB端_第19张图片

可以看出来这个getSubCategory30074返回的都是这些类别

【接口流程分析】唯品会WEB端_第20张图片

把鼠标移动下面的类型对应也会出现标签对应的类型

【接口流程分析】唯品会WEB端_第21张图片

这里往下一滑可以看到确实如此。

这里就那第一个为例子。

【接口流程分析】唯品会WEB端_第22张图片

这里还是老参数看起来平平无奇,只有 categoryid 看起来有必要:

【接口流程分析】唯品会WEB端_第23张图片

这里可以拿到全品类的id

总结

1.先获取全类别接口

2.通过类别接口可以得到,分类的详细 categoryId

3.通过详细 categoryId 进行请求 getProductIdsListRank 来获取对应类别的 productId

4.通过 productIds 获取对应产品的详细信息。

唯品会,整体不复杂感觉没有难解决的难点,就是流程稍微长了一点,一步跟着一步。

进行代码实现后展示成果。

这里拿了10页连衣裙的数据,没任何问题,

注意不要频繁访问他人网站

【接口流程分析】唯品会WEB端_第24张图片

你可能感兴趣的:(python,爬虫,javascript)