OpenClaw 对接淘宝商品 API 做全天候选品监控:TaoToken 统一 Key 配置与 Python 定时任务实操
发布时间:2026/9/29 2:59:19 作者:尧图编辑部 阅读量:1,286

1. 全天候选品监控的真实痛点与 OpenClaw 的切入点做淘系无货源或者小团队铺货的朋友大概率都经历过这样的循环早上打开生意参谋翻榜单中午手动记录几个竞品价格晚上再看一眼销量有没有涨。一天下来真正用来做决策的时间不到两小时其余全耗在重复的页面切换和复制粘贴上。更麻烦的是很多潜力款的红利窗口期只有几个小时等你第二天再去看价格已经被同行压下去了。传统浏览器爬虫方案我也试过反爬策略升级得很快验证码、滑块、IP 限流轮着来维护成本比收益还高。后来我把思路换成「标准化 API 自动化调度框架」用 OpenClaw 做任务编排通过 TaoToken 统一 Key 通道去调淘宝商品详情接口 item_get_pro整个链路就稳定多了。OpenClaw 负责定时轮询、数据清洗和告警推送TaoToken 负责把 API 鉴权和通道统一收口Python 脚本只做业务筛选逻辑。这套组合适合个人卖家、两三个人的小团队或者想先把选品自动化跑通再考虑扩量的场景。这篇文章会交付三样东西一份可复制的 config.toml 骨架、一个能直接跑的 Python 定时任务脚本、以及 item_get_pro 的调用示例和验证监控是否正常触发的具体动作。你照着改 Key 和商品 ID 就能用。2. TaoToken 前置准备统一 Key 与通道配置在写代码之前先把 TaoToken 这边的接入信息准备好。TaoToken 的作用是把模型调用和 API 通道的鉴权统一管理你不需要在每个脚本里散落不同的 Key而是通过一个统一的 API Key 去访问兼容通道。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。具体操作分三步。第一步登录 TaoToken 控制台进入 API Keys 管理页面创建一个新的 Key建议按项目命名比如openclaw-taobao-monitor方便后续排查。第二步确认你的调用通道item_get_pro 这类商品详情接口走的是标准 API 通道不需要额外开通模型对话权限。第三步把 Key 和通道地址记下来后面写进 config.toml。这里有个细节要注意TaoToken 的 API Key 是统一鉴权用的不要把它和淘宝开放平台的 appkey 混在一起。item_get_pro 的请求参数里需要的是接口服务商侧的鉴权信息而 TaoToken 负责的是你访问 API 通道时的身份校验。两者是不同层级的东西配置的时候分开写。如果你后续还想让 OpenClaw 在筛选出潜力品之后自动生成一段推荐文案或者用模型对话能力做商品标题的语义去重那可以在 TaoToken 的模型对话通道里再配一个模型。这部分不是必须的但扩展性会好很多。3. 可复制配置config.toml 骨架与 OpenClaw 初始化OpenClaw 的配置我建议统一放在config.toml里不要把 Key 硬编码到 Python 脚本中。这样换环境或者多人协作的时候只需要改一个文件。下面是我实测可用的骨架你直接复制改值就行。# config.toml - OpenClaw 淘宝选品监控配置 [taotoken] # TaoToken 统一 API 通道 api_base https://taotoken.net/api api_key 你的_taotoken_api_key # 模型对话通道用于后续文案生成或语义去重可选 chat_model gpt-4o-mini [taobao_api] # item_get_pro 接口地址 endpoint https://api.example.com/taobao/item_get_pro # 接口服务商侧鉴权 app_key 你的接口appkey app_secret 你的接口secret timeout 15 # 单次请求间隔避免高频限流 request_interval 1.0 [monitor] # 监控轮询间隔小时 interval_hours 4 # 商品 ID 清单文件 item_id_file ./item_ids.csv # 全量数据落表路径 raw_data_path ./淘宝选品监控数据表.xlsx # 潜力品清单路径 good_item_path ./潜力爆款清单.xlsx [filter] min_month_sold 300 max_month_sold 5000 min_commission 15 min_good_rate 0.92 discount_rate 0.6 [notify] # OpenClaw 消息推送开关 enable true channel dingtalk webhook 你的钉钉机器人webhook配置文件写好后在终端执行 OpenClaw 的初始化命令让它读取配置并绑定本地服务。默认绑定 127.0.0.1避免公网暴露。openclaw config load ./config.toml openclaw config set bind_ip 127.0.0.1 openclaw restart如果你还没装 OpenClaw 的电商采集技能先补上npx clawhublatest install EcommerceCrawlSkill PriceMonitorSkill这两个技能分别负责商品数据采集和价格销量监控是对接 item_get_pro 的基础插件。装完之后openclaw config load才能识别到对应的任务类型。4. Python 定时任务脚本与 item_get_pro 调用示例配置就绪后核心逻辑分两个文件一个负责调 item_get_pro 拉数据一个负责 OpenClaw 定时调度和筛选。先看接口调用部分。# taobao_item_api.py import requests import pandas as pd import toml from datetime import datetime # 读取统一配置 cfg toml.load(./config.toml) API_URL cfg[taobao_api][endpoint] APP_KEY cfg[taobao_api][app_key] APP_SECRET cfg[taobao_api][app_secret] TIMEOUT cfg[taobao_api][timeout] INTERVAL cfg[taobao_api][request_interval] RAW_PATH cfg[monitor][raw_data_path] def get_item_info(item_id): 调用 item_get_pro 获取单品全量数据 params { appkey: APP_KEY, secret: APP_SECRET, item_id: item_id, lang: zh-CN } try: resp requests.get(API_URL, paramsparams, timeoutTIMEOUT) result resp.json() if result.get(code) ! 0: print(f商品 {item_id} 查询失败{result.get(msg)}) return None data result[data] return { 抓取时间: datetime.now().strftime(%Y-%m-%d %H:%M:%S), 商品ID: item_id, 商品标题: data.get(title, ), 现价: data.get(price, 0), 原价: data.get(orig_price, 0), 月销量: data.get(month_sold, 0), 总销量: data.get(total_sold, 0), 佣金比例: data.get(tk_rate, 0), 好评率: data.get(good_rate, 0), 店铺评分: data.get(shop_dsr, ), 优惠券金额: data.get(coupon_price, 0), 商品链接: data.get(item_url, ) } except Exception as e: print(f接口请求异常{e}) return None def batch_get_items(): 批量读取商品 ID 并采集 id_df pd.read_csv(cfg[monitor][item_id_file]) item_ids id_df[item_id].astype(str).tolist() rows [] for iid in item_ids: info get_item_info(iid) if info: rows.append(info) time.sleep(INTERVAL) if rows: df_new pd.DataFrame(rows) try: df_old pd.read_excel(RAW_PATH) df_all pd.concat([df_old, df_new], ignore_indexTrue) except FileNotFoundError: df_all df_new df_all.to_excel(RAW_PATH, indexFalse) print(f本轮采集 {len(rows)} 个商品已写入 {RAW_PATH}) return rows注意这里用了toml库读取配置需要先pip install toml requests pandas openpyxl。商品 ID 清单放在item_ids.csv里一列item_id即可方便你后续批量导入几百上千个 ID。接下来是 OpenClaw 定时调度和筛选逻辑# openclaw_monitor.py from openclaw import scheduler from taobao_item_api import batch_get_items import pandas as pd import toml cfg toml.load(./config.toml) f cfg[filter] GOOD_PATH cfg[monitor][good_item_path] def select_good_items(): 按筛选规则挑出潜力品 items batch_get_items() good [] for d in items: try: orig float(d[原价]) discount float(d[现价]) / orig if orig 0 else 1 except (ValueError, TypeError): discount 1 if (f[min_month_sold] int(d[月销量]) f[max_month_sold] and float(d[佣金比例]) f[min_commission] and float(d[好评率]) f[min_good_rate] and discount f[discount_rate]): good.append(d) print(f发现潜力品{d[商品标题]} | ID{d[商品ID]}) if good: df_good pd.DataFrame(good) try: df_hist pd.read_excel(GOOD_PATH) df_final pd.concat([df_hist, df_good], ignore_indexTrue) except FileNotFoundError: df_final df_good df_final.to_excel(GOOD_PATH, indexFalse) scheduler.msg_send( title新发现淘宝潜力选品, contentf本轮筛出 {len(good)} 个优质货源请查看表格 ) scheduler.add_job( funcselect_good_items, triggerinterval, hourscfg[monitor][interval_hours], idtaobao_monitor, replace_existingTrue ) if __name__ __main__: print(OpenClaw 淘宝选品监控启动每 {} 小时轮询一次.format( cfg[monitor][interval_hours])) scheduler.start()筛选规则我设的是月销 300 到 5000、佣金不低于 15%、好评率 92% 以上、现价低于原价六折。这几个阈值你可以直接在 config.toml 的[filter]段里改不用动代码。OpenClaw 的scheduler.msg_send会把达标商品推送到钉钉或企业微信具体 webhook 在配置文件的[notify]段填。5. 验证监控是否正常触发具体动作与成功结果代码写完之后不要直接挂后台跑先做三步验证。第一步单独跑接口调用确认 item_get_pro 能返回数据。在终端执行python -c from taobao_item_api import get_item_info; print(get_item_info(725896325412))如果返回一个包含标题、价格、月销的字典说明 TaoToken 通道和接口鉴权都通了。如果返回 None先看控制台打印的错误信息大概率是 appkey 或 secret 不对。第二步跑一次完整采集确认 Excel 落表正常python taobao_item_api.py打开淘宝选品监控数据表.xlsx应该能看到本轮抓取的商品行每行带抓取时间戳。这一步验证的是数据清洗和存储链路。第三步启动 OpenClaw 定时任务观察是否按间隔触发python openclaw_monitor.py启动后你会看到「OpenClaw 淘宝选品监控启动」的提示。为了快速验证可以临时把 config.toml 里的interval_hours改成 0.05也就是 3 分钟等一轮触发后看两个信号一是控制台有没有打印「发现潜力品」或「本轮采集 N 个商品」二是钉钉有没有收到推送消息。验证通过后再把间隔改回 4 小时。成功的结果是OpenClaw 常驻后台每 4 小时自动拉一次数据筛选出的潜力品追加写入潜力爆款清单.xlsx同时推送告警。你不需要盯着屏幕只需要定期看清单表就行。6. 本篇常见错排查接口返回 code 非 0 或提示鉴权失败。先检查 config.toml 里的app_key和app_secret是否和接口服务商后台一致注意不要有多余空格。如果确认无误再看 TaoToken 的 API Key 是否过期或额度用尽去控制台 API Keys 页面确认状态。商品 ID 失效导致整批中断。item_get_pro 对已下架商品会返回空数据或错误码脚本里已经做了异常捕获单个失败会跳过继续下一个。但如果你发现某批 ID 全部失败先手动用单个 ID 测一下确认是接口侧问题还是 ID 格式问题。CSV 里的 item_id 列不要带小数点或科学计数法。OpenClaw 定时任务不触发。最常见的原因是scheduler.start()之后主线程被阻塞或者脚本提前退出。确保openclaw_monitor.py是在前台运行的状态下观察如果部署到云服务器用nohup python openclaw_monitor.py 挂后台并检查 nohup.out 日志有没有报错。另外确认openclaw config load已经执行过否则 scheduler 模块可能读不到任务配置。请求频率过高被限流。如果你监控的商品 ID 有几百个单次轮询的请求间隔要适当调大。config.toml 里的request_interval默认 1 秒商品多的时候可以改成 1.5 或 2 秒。接口服务商一般有每日免费额度批量轮询前先确认额度够不够。Excel 写入报 PermissionError。说明文件正被 Excel 打开占用关闭表格再跑脚本即可。长期运行建议把存储换成 MySQL用 pymysql 入库避免文件锁问题也方便做历史价格回溯。排障相关的接入文档和 API Keys 管理都在 TaoToken 控制台里遇到鉴权或通道问题可以直接对照文档排查https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 。如果你后续想让 OpenClaw 在筛选后自动生成商品推荐文案或者用模型对话做标题语义去重可以走模型对话通道https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 。长期跑编码和 Agent 类任务的话Coding Plan 会更划算https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 。这套链路跑通之后你可以继续扩展把关键词搜索接口的结果自动写入 item_ids.csv实现「新品上线→自动入池→定时抓取→筛选告警」的闭环。也可以把筛选规则改成价格异动监控比如三天内降价超过 20% 自动标记抓短期清仓货源。核心思路就是把重复的盯盘动作交给 OpenClaw 和定时任务你只负责看清单做决策。