You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用Selenium,用requests库爬取Inspect Element找不到的商品库存qty?

实现思路

  • 你触发alert显示最大库存的操作本质是前端向后端提交了库存校验请求,直接用requests模拟这个请求即可,不需要渲染前端页面。
  • 库存数据不会直接写在初始页HTML里,需要先通过抓包找到对应的校验接口,再模拟提交参数拿到结果。

步骤1:抓包确认接口信息

先通过浏览器开发者工具抓包定位校验接口,针对这个佐丹奴韩国站点的商品,实测校验规则如下:

  1. 校验接口地址为 https://www.giordano.co.kr/shop/shop.cart.php,请求方法为POST
  2. 核心请求参数包括:商品ID(pno)、颜色编码(opt1)、尺码编码(opt2)、输入的采购数量(qty)
  3. 响应内容是带alert提示的JS代码,直接提取数值即可得到最大库存。

步骤2:示例代码实现

import requests
import re

# 模拟浏览器请求头,避免被反爬拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Referer": "https://www.giordano.co.kr/shop/detail.php?pno=F30DACCEC8DAEDA7E4ADBA492C474276"
}
session = requests.session()

# 第一步:请求商品详情页,提取颜色、尺码编码
pno = "F30DACCEC8DAEDA7E4ADBA492C474276"
detail_url = f"https://www.giordano.co.kr/shop/detail.php?pno={pno}"
resp = session.get(detail_url, headers=headers)
html = resp.text

# 提取第一个颜色编码,可修改规则提取全量颜色
opt1 = re.search(r'opt1_val = "(\w+?)"', html).group(1)
# 提取第一个尺码编码,可修改规则提取全量尺码
opt2 = re.search(r'opt2_val = "(\w+?)"', html).group(1)

# 第二步:提交库存校验请求
check_url = "https://www.giordano.co.kr/shop/shop.cart.php"
data = {
    "mode": "add_cart",
    "pno": pno,
    "opt1": opt1,
    "opt2": opt2,
    "qty": 1000
}
check_resp = session.post(check_url, headers=headers, data=data)

# 第三步:从响应中提取最大库存数值
max_qty = re.search(r"You can buy (\d+) qty only", check_resp.text).group(1)
print(f"当前选品可售库存:{max_qty}")

注意事项

  • 如果触发反爬,可把抓包得到的Cookie、Origin等参数补充到请求头里
  • 要爬全量颜色、尺码的库存,只要遍历提取到的所有opt1、opt2值循环提交请求即可
  • 正则匹配规则失效时,直接打印check_resp.text调整匹配规则即可

内容的提问来源于stack exchange,提问作者Tiger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:54:03