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

Ed2个月前未分类95
做电商、无货源铺货、竞品调研的朋友基本都绕不开商品关键词搜索。传统玩法:手动打开淘宝搜词、一页页复制商品 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 对接货源系统,都能低成本落地。后续还能继续拓展价格监控、自动预警降价商品等拓展功能。



相关文章

做京东评论分析系统 3 年,京东评论数据解析

做京东评论分析系统 3 年,京东评论数据解析

数据解析陷阱:漏了追评,商家差评预警漏了 30% 的差评系统上线后第二周,商家反馈:“昨天的 12 条差评,系统只预警了 8 条!” 排查发现,京东评论的返回结果藏着 “双字段陷阱”——主评存在com...

面向对象爬虫架构设计:构建高复用、抗封禁的爬虫系统​

一、传统脚本爬虫的四大痛点1.配置散落:URL、Headers参数硬编码在多个函数中2.异常冗余:每个请求函数重复编写异常处理逻辑3.扩展困难:新增代理池或缓存机制需重构核心逻辑4.资源泄露:连接未统...

电商程序猿开发实录:淘宝商品python(2)

在电商开发这条布满荆棘的路上摸爬滚打了这么多年,和淘宝商品详情 API 接口 “过招” 的经历,至今想起来都印象深刻。从被各种报错整到抓狂,到能熟练用它搭建功能,其中的辛酸与收获,今天就掏心窝子和大伙...

京东商品API技术对接手册(2025版)

一、基础服务能力说明请求性能基准常规接口响应时间≤200ms(95%请求)建议生产环境配置: ▶ 单实例建议并发≤500 QPS ▶ 突发流量需提前2工作日申请扩容数据覆盖范围支持自营商品90%数据字...

电商软件开发日至:唯品会商品详情对接

  在电商开发的江湖里摸爬滚打这些年,和唯品会商品详情 API 的 “过招” 经历堪称一场充满惊喜与挑战的冒险。从特卖模式特有的数据结构,到接口调用时的各种 “暗礁”,每一步都藏着...

面向对象爬虫进阶:类封装实现高复用爬虫框架​

典型过程式爬虫示例(易引发代码混乱)def crawl_page(url):headers = {‘User-Agent’: ‘Mozilla/5.0’} # 硬编码头部try:res = reque...

发表评论    

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