微店关键词搜索商品列表 API 实战:micro.item_search 全流程指南

关键词:微店 API、item_search、关键词搜索、签名鉴权、分页抓取、Python 爬虫

一、接口定位与能力

micro.item_search 是微店开放平台唯一面向“全站商品”的搜索级接口,可根据关键词返回商品 ID、标题、价格、销量、店铺、主图等 20+ 字段,支持分页、价格/销量排序,是选品、竞品监控、市场调研的“入口级”API。

  • 官方地址
    https://api-gw.onebound.cn/micro/item_search/(第三方聚合)
    或微店官方网关 https://api.weidian.com/v3/micro/item_search(需申请白名单)

  • 协议:HTTP GET/POST,JSON 返回

  • 默认 QPS:200,峰值 429 会限流,需指数退避

二、公共参数与请求语法

字段类型必填说明
keyString平台分配的 AppKey
secretString平台分配的 AppSecret
api_nameString固定值 item_search
qString搜索关键词,如“徒步鞋”
pageInt页码,默认 1
page_sizeInt每页条数,默认 20,最大 100
sortStringsales_desc 销量降序,price_asc 价格升序 …
timestampInt秒级时间戳,10 位
signString动态签名,见下方算法

三、签名算法(HMAC-SHA256)

  1. 将除 sign 外的所有 Query 参数按 key 升序排列;

  2. 拼成 key1=value1&key2=value2 后,首尾拼接 AppSecret

  3. HMAC-SHA256,输出 64 位大写 HEX。

Python 实现:

import hmac, hashlib, urllib.parse, time

def calc_sign(p: dict, secret: str) -> str:
    s = '&'.join([f"{k}={urllib.parse.quote_plus(str(p[k]))}"
                  for k in sorted(p)])
    return hmac.new(secret.encode(), s.encode(),
                    hashlib.sha256).hexdigest().upper()

四、最小可运行 Demo(单页)

Python

#!/usr/bin/env python3
# weidian_item_search.py
import requests, json, time, hmac, hashlib, urllib.parse

APP_KEY    = '你的AppKey'
APP_SECRET = '你的AppSecret'
KEYWORD    = '女装'

def sign(p: dict) -> str:
    s = '&'.join([f"{k}={urllib.parse.quote_plus(str(p[k]))}"
                  for k in sorted(p)])
    return hmac.new(APP_SECRET.encode(), s.encode(),
                    hashlib.sha256).hexdigest().upper()

def search(keyword: str, page: int = 1, page_size: int = 20):
    url = 'https://api-gw.onebound.cn/micro/item_search/'
    params = {
        'key'        : APP_KEY,
        'api_name'   : 'item_search',
        'q'          : keyword,
        'page'       : page,
        'page_size'  : page_size,
        'timestamp'  : int(time.time())
    }
    params['sign'] = sign(params)
    r = requests.get(url, params=params, timeout=5)
    return r.json()

if __name__ == '__main__':
    data = search(KEYWORD, page=1, page_size=5)
    items = data['items']['item']
    for it in items:
        print(it['title'], it['price'], it['sales'])

运行结果(示例):

重磅推荐羊绒大衣 1360 129
SS24春夏羊绒背心 478 18
复古丹宁外套 610 59
...

五、把脚本升级成“爬虫”式多页抓取

目标:一次性拿回 3 000 件“徒步鞋”商品,落库存分析。

  1. 自动翻页:读取返回的 pagecount 字段,递归抓取;

  2. 限速:单线程 200 QPS 上限,每页间隔 0.2 s;

  3. 异常处理:429 限流时退避 2 s,最多重试 3 次;

  4. 落库:MongoDB 按 num_iid 唯一索引,重复更新。

核心代码:

抓取 3 000 条耗时约 2 min,平均 40 QPS,安全不撞限。

六、数据字段速览

字段示例说明
num_iid7235227171商品唯一 ID,可拼接详情页 URL
title重磅推荐‼️羊绒大衣商品标题,含 Emoji
price1360现价(元)
original_price1458划线价
sales129已售件数
pic_urlhttps://si.geilicdn.com/…主图 800×800
detail_urlhttps://weidian.com/item.html?itemID=…可直跳微店
shop_id1828271009店铺 ID
seller_nick芳心之选店店铺昵称

七、常见报错与排查

错误码原因解决方案
15签名错误检查参数排序、URL 编码、HMAC 是否大写
26调用超限降速或申请更高配额
4003关键词为空必填字段缺失
5xx后端抖动指数退避重试

八、合规与版权提示

  • 微店官方允许“自用型”数据抓取,但禁止将商品图片、描述等版权内容打包转售或对外提供 SaaS 服务;

  • 建议把调用频率控制在 200 QPS 以内,若需更高配额,走“企业认证”通道;

  • 数据落库后请做脱敏处理,用户手机号、收货地址等隐私字段切勿落盘。

九、结语

通过 micro.item_search,你可在 30 分钟内完成“关键词 → 商品列表 → 持久化 → 差异对比”的完整闭环:

  • 选品:每天凌晨跑一次“徒步鞋”,销量>100 且涨幅>20 % 的商品自动加入选品池;

  • 监控:对竞品店铺做 30 min 级价格跟踪,变动即飞书机器人告警;

  • 分析:结合 item_get 详情接口,把 SKU、库存、主图一并拉回,做聚类定价模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值