从手动搜货到 AI 全自动选品|OpenClaw item_search + 多 Agent 落地实战,小白也能搭建无人选品机器人

2 阅读7分钟

做电商、无货源铺货、竞品调研的朋友基本都绕不开商品关键词搜索。传统玩法:手动打开淘宝搜词、一页页复制商品 ID、粘贴到详情接口查数据、再人工筛选价格和款式,一套类目选品下来半天起步;批量多类目调研,人力成本直接拉满。

最近在用「AI 多智能体 + OpenClaw 淘宝关键词搜索 item_search 接口」做自动化选品,一句话下达选品需求,从关键词拓展、全页数据抓取、商品筛选、爆款详情深挖,最后自动生成 Excel 铺货报表,整套流程全自动跑,不用盯程序、不用反复修改接口参数。

本文基于 taobao.item_search 搜索 API,搭配分层 AI Agent 实战开发,附上可直接运行 Python 源码,部署后就能实现无人值守选品,适配个人卖家、小型工作室、自研 ERP 开发。

一、item_search 接口简单介绍

接口名称:taobao.item_search(关键词搜淘宝商品)

1. 公共参数

key、secret 为调用凭证,后续全部交由 Agent 统一托管配置,一次填写全程复用;cache 默认开启缓存加速,返回格式选用 jsonu 方便 AI 识别中文内容。[获取key和secret]

2. 核心入参(全部由 AI 自动生成,无需手动填写)

  • q:搜索关键词,Agent 根据指令自动衍生长尾词
  • start_price/end_price:价格筛选区间,自然语言提取数字自动赋值
  • page:页码,采集 Agent 自动循环翻页,接口上限单词最多 100 页

3. 返回数据核心字段

单次搜索返回分页总数、类目预估商品总量、单品标题 / 售价 / 促销价 / 商品 ID / 主图 / 链接,依托标准化 JSON 结构,非常适配 AI 做数据解析。

4. 错误码快速说明(Agent 内置自动容错)

表格

错误码场景Agent 处理方式
0000调用成功正常收纳商品数据
2000关键词无商品自动切换衍生关键词重试
4003参数格式异常重新生成搜索参数
4008访问并发超限程序休眠延时分批请求
4016账户余额不足终止任务并日志提醒

二、整套 AI Agent 分工逻辑(通俗版)

没有复杂的分布式架构,拆成 5 个轻量化智能体,一环接一环串联工作:

  1. 关键词解析 Agent:接收人话指令,拆解核心词 + 拓展长尾搜索词、拆分价格筛选范围

例:用户说 “找 30~80 元秋冬女装做铺货”→自动生成:秋冬女装、秋冬新款打底女装、高腰休闲女装等多组搜索关键词

  1. 数据采集 Agent:循环调用 OpenClaw item_search,自动分页爬取全页商品,捕获报错自动重试
  2. 商品筛选 Agent:按价格、销量规则过滤垃圾商品,输出优质货源 ID 清单
  3. 详情深挖 Agent:拿着筛选后的商品 ID,联动 item_get 详情接口,补齐 SKU、属性、店铺全量信息
  4. 报表生成 Agent:汇总所有有效数据,自动生成 Excel 铺货表格 + 简易市场分析文案

整体链路:一句话指令 → 扩词搜品 → 批量过滤 → 深挖详情 → 自动出铺货文档

三、开箱即用 Python 完整代码

python

运行

# -*- coding: utf-8 -*-
"""
AI自动化选品工具|多Agent+OpenClaw item_search
一句话下达需求,全自动淘宝关键词搜款、筛选、生成铺货表
"""
import requests
import time
import pandas as pd

# 接口凭证配置区
OC_KEY = "你的Key"
OC_SECRET = "你的Secret"
SEARCH_API = "https://api-gw.onebound.cn/taobao/item_search"
DETAIL_API = "https://api-gw.onebound.cn/taobao/item_get"

# Agent1:指令&关键词处理
class WordAgent:
    def split_word(self, prompt, low_price, high_price):
        core = prompt.replace("找","").replace("做铺货","").replace("元","")
        expand_list = [core, f"{core}新款", f"{core}百搭", f"{core}爆款"]
        task_params = []
        for word in expand_list:
            task_params.append({
                "q": word,
                "start_price": low_price,
                "end_price": high_price,
                "cat": 0
            })
        return task_params

# Agent2:批量搜索采集
class SearchAgent:
    def __init__(self):
        self.key = OC_KEY
        self.secret = OC_SECRET
        self.goods_pool = []

    def run_search(self, param, page=1):
        payload = {
            "key": self.key,
            "secret": self.secret,
            "q": param["q"],
            "start_price": param["start_price"],
            "end_price": param["end_price"],
            "page": page,
            "cat": param["cat"],
            "result_type": "jsonu",
            "cache": "yes"
        }
        try:
            res = requests.get(SEARCH_API, params=payload, timeout=18).json()
            code = res.get("error_code")
            if code != "0000":
                if code == "2000":
                    print(f"【提示】关键词 {param['q']} 暂无商品")
                    return
                elif code == "4008":
                    print("访问拥挤,等待5秒重试")
                    time.sleep(5)
                    self.run_search(param, page)
                    return
                else:
                    print(f"异常错误:{res.get('reason')}")
                    return
            items = res["items"]["item"]
            self.goods_pool.extend(items)
            total_page = int(res["items"]["pagecount"])
            print(f"{param['q']}:已采集第{page}页,本页{len(items)}个商品")
            # 限制最大100页
            if page < total_page and page < 100:
                time.sleep(0.7)
                self.run_search(param, page+1)
        except Exception as e:
            print("网络异常:",e)

# Agent3:商品规则筛选
class FilterAgent:
    def filter_data(self, all_data, min_p, max_p):
        res_list = []
        id_list = []
        for item in all_data:
            try:
                price = float(item["price"])
                sale_num = int(item.get("sales",0))
                # 自定义筛选规则:价格区间+有销量
                if min_p <= price <= max_p and sale_num>0:
                    res_list.append(item)
                    id_list.append(item["num_iid"])
            except:
                continue
        print(f"\n筛选完成:原始{len(all_data)}件 → 符合铺货标准{len(res_list)}件")
        return res_list, id_list

# Agent4:单品详情补充
class DetailAgent:
    def get_item_info(self, gid):
        params = {
            "key":OC_KEY,"secret":OC_SECRET,"num_iid":gid,"is_promotion":1,"result_type":"jsonu"
        }
        resp = requests.get(DETAIL_API,params=params,timeout=15).json()
        if resp["error_code"] != "0000":
            return None
        return resp["item"]

# Agent5:自动生成表格&分析报告
class ExcelAgent:
    def save_file(self, data):
        df = pd.DataFrame(data)
        df.to_excel("淘宝货源铺货清单.xlsx",index=False)
        avg = round(df["price"].astype(float).mean(),2)
        print(f"\n✅ 铺货表格生成完毕,共{len(data)}个优质货源")
        print(f"📊 品类均价:{avg}元,素材图片、商品链接全部收录可直接上架")

# 程序入口
if __name__ == "__main__":
    # 在这里修改你的需求
    user_msg = "找30~80元秋冬女装做铺货"
    min_price,max_price = 30,80

    # 任务流水线启动
    word_agent = WordAgent()
    search_task = word_agent.split_word(user_msg,min_price,max_price)

    search_agent = SearchAgent()
    for p in search_task:
        search_agent.run_search(p)

    filter_agent = FilterAgent()
    good_items,good_ids = filter_agent.filter_data(search_agent.goods_pool,min_price,max_price)

    # 批量补齐详情数据
    detail_agent = DetailAgent()
    full_info = []
    for goods_id in good_ids:
        info = detail_agent.get_item_info(goods_id)
        if info:
            full_info.append(info)
        time.sleep(0.5)

    excel_agent = ExcelAgent()
    excel_agent.save_file(full_info)

运行步骤

  1. 安装依赖:pip install requests pandas openpyxl
  2. 替换代码内 key、secret
  3. 修改 user_msg 和价格区间,直接运行即可

四、落地 3 个真实使用场景

场景 1|无货源工作室日常选品

设置定时任务,每日凌晨自动跑词抓取当季新品,筛选符合定价货源,白天直接打开 Excel 表格上架,不用每天花 2~3 小时找款。

场景 2|类目市场调研

输入类目关键词,AI 自动抓取全价格带商品,通过生成的表格统计类目主流售价、热销款式特征,用来指导自家产品定价。

场景 3|跨平台铺货前置

抓取淘宝货源后,提取标题、主图、SKU 参数,简单微调即可上架拼多多、跨境平台,大幅压缩上新周期。

五、开发过程常见小问题答疑

Q1:单个关键词最多只能抓 100 页,怎么抓取更多商品?

A:关键词 Agent 拆分多价格分段,比如 0-30、30-60、60-100 分 3 组搜索,规避接口单词页数限制,变相拿到全量商品。

Q2:频繁出现 4008 超限报错怎么优化?

A:在采集代码里调整 sleep 休眠时间,批量任务拆分多时段错开调用。

Q3:想接入 GPT / 通义千问优化关键词拓展?

A:在 WordAgent 模块对接大模型接口,由 AI 根据季节、平台热点智能生成搜索词,选品精准度进一步提升。

六、最后总结

对比传统爬虫易封号、IP 受限、开发繁琐的痛点,依托 OpenClaw 标准化 API+AI Agent 方案,把重复的搜词、翻页、筛选工作交给程序自动化完成。这套轻量化架构不管是个人做副业铺货,还是企业自研 ERP 对接货源系统,都能低成本落地。后续还能继续拓展价格监控、自动预警降价商品等拓展功能。