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

Ed10小时前未分类7
做电商、无货源铺货、竞品调研的朋友基本都绕不开商品关键词搜索。传统玩法:手动打开淘宝搜词、一页页复制商品 ID、粘贴到详情接口查数据、再人工筛选价格和款式,一套类目选品下来半天起步;批量多类目调研,人力成本直接拉满。
最近在用「AI 多智能体 + OpenClaw 淘宝关键词搜索 item_search 接口」做自动化选品,一句话下达选品需求,从关键词拓展、全页数据抓取、商品筛选、爆款详情深挖,最后自动生成 Excel 铺货报表,整套流程全自动跑,不用盯程序、不用反复修改接口参数。
本文基于 taobao.item_search 搜索 API,搭配分层 AI Agent 实战开发,附上可直接运行 Python 源码,部署后就能实现无人值守选品,适配个人卖家、小型工作室、自研 ERP 开发。

一、item_search 接口简单介绍

接口名称:taobao.item_search(关键词搜淘宝商品)请求地址:https://api-gw.onebound.cn/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 对接货源系统,都能低成本落地。后续还能继续拓展价格监控、自动预警降价商品等拓展功能。



相关文章

干了 8 年电商开发,被京东评论 API 坑到凌晨三点的那些事

 在电商开发圈摸爬滚打这些年,对接过的接口没有一百也有八十,但京东评论接口的 “反人类” 程度,至今想起都让我头皮发麻。本以为只是简单拉取用户评论,结果从权限申请到数据解析,每一步都藏着能让...

全自动交易闭环!1688定制交易API,创建订单+免密付款+查单+撤单完整流程(附带Python源码)

自动化采购、企业批量进货、ERP自研开发的开发者都知道:1688最难开发的不是采集,而是交易链路。普通采集接口只能查看商品、价格、店铺基础数据;而交易类API可以实现真人级别的后台操作:地址解析、获取...

Python爬虫进阶:面向对象编程构建可维护的爬虫系统

在Python爬虫开发中,采用面向对象(OOP)的设计思想,通过类(Class)来封装爬虫功能,可以显著提升代码的可复用性、可维护性和抗封禁能力。本文将通过一个完整的实战案例,讲解如何设计一个基于类的...

利润算得准才敢爆单!Open Claw 1688 运费查询 API,精准核算成本 + 一键下单付款(附 Python 源码)

做电商、无货源、跨境、店群的朋友都懂:1688 拿货,运费直接决定利润。价格看着低,一加上运费就亏本;不同地区、不同数量运费差异巨大;手动算运费慢、不准、还容易漏算,最后卖得越多亏得越惨。用 ...

电商开发日志:淘宝图片搜索商品列表(二)

在电商开发圈摸爬滚打这些年,对接过不少 “反人类” 的 API,淘宝图片搜索接口的开发经历绝对能排进前三。看似简单的 “传图搜商品”,实际从图片预处理到签名验证,每一步都藏着能让你凌晨三点还在改 bu...

京东商品详情1.0-4.0源数据解析格式(含优惠券)

请求方式:get请求示例:java、php等Php<?php // 请求示例 url 默认请求参数已经URL编码处理 // 本示例代码未加密sec...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。