建行积分商城库存查询
来自群友的问题 https://jf.ccb.com/exchangecenter/product/materialproductdetail.jhtml?productId=1000000000620547
如何获取库存
先抓包看下
没有发现关于库存的请求
右键查看元素
lsqaujrn.pngpint
有关
再次抓包
找到了
lsqazhvx.png
//查询库存
if($("#isSkuProd").val() == 0){
if($("#inventoryFlag").val() == 0 || $("#inventoryFlag").val() == 2){
try{
var proInventory;
var jsonKey;
var productid = $('input[name="pId"]').val();
var isActivityProduct=$("#isActivityProduct").val();
if(isActivityProduct == 1){
proInventory = JSON.parse(inventoryActData);
jsonKey = "proAct_"+productid+productid;
}else{
proInventory = JSON.parse(inventoryData);
jsonKey = "pro_"+productid+productid;
}
console.log(proInventory[jsonKey]);
if(typeof(proInventory[jsonKey]) != "undefined"){
$('#pint').html(proInventory[jsonKey]);
pageCache.pInvent = proInventory[jsonKey];
}else{
$('#stocktxt').html('');
}
pageCache.pLimit = 250;
if(proInventory[jsonKey] === 0){
$('.xq_js_div').html('很抱歉,商品库存为 0,暂不提供兑换');
$(".relative").attr("style","display:none");
}
}catch (e){
//$('.xq_js_div').html('当前访问太过火爆,请您耐心等候,稍后再试');
$('#stocktxt').html('');
console.log(e.message);
}
}else{
$.ajax({
type: "POST",
url: realpath+"/exchangecenter/orderCheckInventory."+Utils.webType,
data: "productId="+$('input[name="pId"]').val()+"&inventoryId="+$('input[name="inId"]').val(),
success: function(res){
if(res.invent===0){
$('.xq_js_div').html('很抱歉,商品库存为 0,暂不提供兑换'); //很抱歉,商品兑换已结束 liuhao 20150212
$('#pint').html(0);
$(".relative").attr("style","display:none");
}else{
//更新页面库存数量
$('#pint').html((res.invent));
}
//缓存库存数
pageCache.pInvent = res.invent;
pageCache.pLimit = res.limit||500;
}
});
}
}
发现需要 pId
与 inId
,在网页源码中找到
lsqb3hvo.png
写成 python 脚本
import requests
def check_inventory(realpath, product_id, inventory_id):
# 构建请求的 URL
url = f"{realpath}/exchangecenter/orderCheckInventory.jhtml"
# 准备 POST 请求的数据
data = {
'productId': product_id,
'inventoryId': inventory_id
}
try:
# 发送 POST 请求
response = requests.post(url, data=data)
# 检查请求是否成功
if response.status_code == 200:
# 解析返回的 JSON 数据
res_json = response.json()
if res_json['invent'] == 0:
print('很抱歉,商品库存为 0,暂不提供兑换')
else:
print(f"商品库存数量为:{res_json['invent']}")
else:
print("请求失败,状态码:", response.status_code)
except requests.RequestException as e:
print("请求出错:", e)
realpath = "https://jf.ccb.com" # 服务器地址
product_id = "1000000000620197" # 产品 ID pId
inventory_id = "1000000132191701" # 库存 ID inId
check_inventory(realpath, product_id, inventory_id)