ITPub博客

首页 > 大数据 > 数据分析 > 微店根据关键词批量获取商品信息API接口操作指南

微店根据关键词批量获取商品信息API接口操作指南

原创 数据分析 作者:OneLafite 时间:2025-11-12 15:10:17 0 删除 编辑

一、前置准备

  1. 注册开发者账号
    • 登录微店开放平台,完成个人/企业资质认证(需提供营业执照、身份证等)。
    • 创建应用,获取 AppKey和 AppSecret(接口调用身份凭证)。
  2. 获取Access Token
    • 通过OAuth 2.0授权流程获取 access_token(有效期2小时,需定期刷新):
      pythonimport requestsauth_url = "https://open.weidian.com/api/oauth2/token"payload = {    "grant_type": "client_credentials",    "client_id": "YOUR_CLIENT_ID",  # 替换为AppKey    "client_secret": "YOUR_CLIENT_SECRET"  # 替换为AppSecret}response = requests.post(auth_url, data=payload)access_token = response.json()["access_token"]

二、API接口调用

  1. 商品搜索接口(item.search)
    • 接口地址: https://api.weidian.com/item/search(正式环境)
    • 请求方式:POST(推荐)或GET
    • 必选参数:
      • app_key:开发者AppKey
      • keyword:搜索关键词(如“女装”)
      • page_no:分页页码
      • page_size:每页数量(默认20,最大100)
    • 可选参数:
      • sort_type:排序方式(1=综合排序,2=销量优先,3=价格升序,4=价格降序)
      • start_price/ end_price:价格区间筛选
    • 签名生成:
      使用HMAC-SHA256算法,按参数名升序排列后拼接,以AppSecret为密钥加密:
      pythonimport hmacimport urllib.parsefrom hashlib import sha256def generate_sign(params, app_secret):    sorted_params = sorted(params.items(), key=lambda x: x[0])    query_str = "&".join([f"{k}={urllib.parse.quote_plus(str(v))}" for k, v in sorted_params])    sign = hmac.new(app_secret.encode(), query_str.encode(), sha256).hexdigest().upper()    return sign
  2. 商品详情接口(item.get)
    • 接口地址: https://api.weidian.com/v1/product/get
    • 请求方式:GET
    • 必选参数:
      • product_id:商品ID
      • access_token:授权凭证
    • 示例代码:
      pythonimport requestsurl = "https://api.weidian.com/v1/product/get"params = {    "product_id": "12345678",    "access_token": access_token}headers = {"Authorization": f"Bearer {access_token}"}response = requests.get(url, headers=headers, params=params)product_data = response.json()["data"]

三、批量处理策略

  1. 分页获取商品列表
    • 调用 item.search获取总页数 total_page,循环遍历所有分页:
      pythontotal_count = response.json()["data"]["total_count"]total_page = (total_count + 19) // 20  # 每页20条for page in range(1, total_page + 1):    search_products(keyword, page=page, size=20)
  2. 并发控制与限流
    • 单店铺QPS限制:50-200(依店铺等级调整),全局QPS上限1000。
    • 使用本地漏桶算法或异步请求(如 aiohttp)控制并发量:
      pythonimport asyncioimport aiohttpasync def fetch_items(session, item_id, access_token):    url = f"https://api.weidian.com/micro/item_get?accessToken={access_token}&num_iid={item_id}"    async with session.get(url) as response:        return await response.json()async def main():    item_ids = [123, 456, 789]    async with aiohttp.ClientSession() as session:        tasks = [fetch_items(session, id, access_token) for id in item_ids]        results = await asyncio.gather(*tasks)asyncio.run(main())
  3. 错误处理与重试
    • 401错误:Token失效,触发刷新流程。
    • 429错误:QPS超限,延迟重试(如指数退避策略)。
    • 5xx错误:服务端异常,最多重试3次。

四、数据解析与存储

  • 字段映射:提取商品ID、标题、价格、库存、主图URL、SKU详情等。
  • 存储方案:
    • 热点商品缓存:Redis(过期时间2小时)。
    • 全量数据持久化:MySQL分库分表(按商品ID哈希分片)。
    • 搜索优化:Elasticsearch建立索引(支持按分类、价格区间检索)。

五、注意事项

  1. 权限与合规
    • 确保应用已申请“关键词搜索接口”权限,避免调用未授权接口。
    • 遵守微店调用频率限制,避免IP被封禁(单IP 1分钟内请求超500次可能触发)。
  2. 数据更新策略
    • 增量同步:对比商品 update_time,标记“新增/修改/下架”状态。
    • 全量同步:每日定时任务,结合分页与批量查询优化效率。
  3. 代码示例与工具
    • 完整代码示例可参考微店开放API文档或CSDN技术博客(如《实战指南:微店根据关键词取商品列表 API》)。

通过以上步骤,可实现高效、合规的微店商品信息批量获取。如遇问题,可联系微店开放平台客服获取支持。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046834/viewspace-3101044/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
专业研发电商平台API开放接口,搭建独立站系统,反向海淘代购系统十年+,https://o0b.cn/lafite。

注册时间:2025-06-20

  • 博文量
    231
  • 访问量
    258371