以下内容基于 2025 年最新公开文档与社区逆向方案,给你一份 “能用、能落地” 的 Walmart 商品详情 API(item_get_desc 维度)实战指南,涵盖官方通道、第三方逆向、代码示例与合规红线,帮你 5 分钟拿到沃尔玛完整的图文描述、价格、库存与变种信息。
一、Walmart 官方到底有没有 “item_get_desc”?
-
Open API 官网目前只开放“品类树、订单、库存上报”三大块,不开放商品图文详情接口;零售端(Item Content API)需成为沃尔玛供应商并签署 EDX 协议,个人开发者无法申请。
-
因此所谓“Walmart item_get_desc”实际指两种非官方方案:
-
第三方聚合数据商(ZenRows、SearchApi、ScrapeHero 等)已把沃尔玛前端 JSON+HTML 清洗好,通过 REST 方式直接返回结构化字段,最快 30 分钟可集成。
-
自研逆向,抓包
https://www.walmart.com/ip/{sku}的私有接口,自己解压 gzip、提取描述 HTML,适合海量高并发需求。
-
二、方案 1:第三方 REST(推荐 95% 团队)
1. 终点速览
| 厂商 | 核心终点 | 单价 | 是否含 desc HTML | 是否含变种图 |
|---|---|---|---|---|
| ZenRows | ecommerce.api.zenrows.com/v1/targets/walmart/products/{sku} | 1 积分/次 | ✅ 长描述 | ✅ |
| SearchApi | www.searchapi.io/api/v1/searches | 5 积分/次 | ✅ 长短描述 | ✅ |
| ScrapeHero | get.scrapehero.com/wmt/product-details/ | 10 积分/次 | ✅ 详情文本 | ✅ |
积分成本按“返回字段量”计价,长描述(long_description)即 item_get_desc 等价字段。
2. 代码模板(ZenRows 为例)
import requests, json
API_KEY = "YOUR_ZENROWS_API_KEY"
SKU = "5074872077" # 8~20 位沃尔玛数字 ID
url = f"https://ecommerce.api.zenrows.com/v1/targets/walmart/products/{SKU}?apikey={API_KEY}"
data = requests.get(url, timeout=15).json()
# 等价于 item_get_desc
long_desc = data["product"]["about"]["long_description"]
short_desc = data["product"]["about"]["short_description"]
print("长描述:", long_desc[:300], "……")
print("短描述:", short_desc)
-
TTFB < 700 ms;返回即 UTF-8,无需自己解 gzip。
-
自带价格、库存、阶梯价、变种图、review 摘要,一次性解决 90% 场景。
三、方案 2:自研逆向(适合日采 100 k 以上)
1. 接口定位
PC 端商品页会并行请求:
POST https://www.walmart.com/api/restful/ich/v2/page/product
-
Request Payload →
{"itemId": "14601806068"} -
Response → 内含字段
productDescription→ 即 item_get_desc 的 HTML 片段,gzip 压缩 + unicode escape。
2. 核心代码(Python)
import requests, gzip, json, html
headers = {
"content-type": "application/json",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"accept-encoding": "gzip, deflate, br",
}
payload = {"itemId": "14601806068"} # 改为实时 SKU
url = "https://www.walmart.com/api/restful/ich/v2/page/product"
r = requests.post(url, json=payload, headers=headers)
r.raise_for_status()
blob = r.json()["productDescription"]["description"]
# 1. unicode 解码 2. gzip 解压
html_desc = html.unescape(blob)
html_desc = gzip.decompress(html_desc.encode("latin1")).decode("utf-8")
with open("walmart_desc.html", "w", encoding="utf-8") as f:
f.write(html_desc)
print("描述已写入,共 %.1f KB" % (len(html_desc)/1024))
-
单请求 300~600 ms,返回 5~150 KB 富文本,含原图、表格、视频封面。
-
需要自行维护 IP 池、Cookie
vTC5p、JSESSIONID,否则 10 次即 403。
四、字段对照:快速定位“描述”以外常用值
| 字段 | 官方 JSON 路径 | 说明 |
|---|---|---|
| 标题 | data.product.title | 128 位以内 |
| 原价/售价 | data.product.price / list_price | 若无折扣两者相同 |
| 库存状态 | data.product.availability_status | IN_STOCK / OUT_OF_STOCK |
| 阶梯变种 | data.product.variants[] | 颜色、尺码、价格、子 SKU |
| 主图数组 | data.product.images[*].url | 最高 1200×1200 |
| 评分&评论数 | data.product.rating / reviews | 4.2 ★ / 264 条 |
五、合规红线
-
robots.txt:沃尔玛禁止高频抓取
/api/与/ip/路径,务必控制单 IP 频率 ≤30 req/min。 -
数据用途:仅限内部比价、选品分析,不得转售或公开展示;引用图片请二次上传至自有 CDN,防止盗链。
-
代理实名:使用 AWS/阿里云弹性 IP,出现 429 时自动熔断 + 退避 5 min。
六、一句话总结
目前想拿到 Walmart 商品详情 + 图文描述 最稳路径就是“第三方 REST”—— 2 个调用积分即可换回包含 long_description 的全量字段,30 分钟可上线;只有日采百万级场景才值得自研逆向,记得加上 IP 池、Cookie 轮换与限速,便可把沃尔玛当成“免费”商品库持续开采。
如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。
5549

被折叠的 条评论
为什么被折叠?



