×

数据挖掘 api

未命名

admin admin 发表于2026-06-24 17:00:46 浏览11 评论0

抢沙发发表评论

前言

做淘宝、无货源、跨境铺货的卖家,最头疼两件事:一是手动翻竞品数据效率极低,二是自建网页爬虫频繁触发平台风控、频繁封 IP。很多运营每天花几小时记录竞品价格、销量、评价、活动优惠,数据滞后还容易出错,错过蓝海品、低价截流机会。

最近一直在用 OpenClaw 开源智能调度框架,对接标准化淘宝商品详情 API(item_get_pro),实现全自动定时采集、数据入库、竞品异动告警,不用维护复杂爬虫,稳定性拉满。本文从接口基础、环境配置、完整 Python 代码、自动化监控逻辑、数据筛选选品规则完整讲透,适合开发者、电商运营、数据采集从业者直接落地,代码可复制运行。

一、方案优势:API 直采 vs 传统网页爬虫

先理清为什么优先选择 API 接口 + OpenClaw 组合,而非自己写 selenium/requests 爬虫:

  1. 合规稳定,无封禁风险 网页爬虫容易触发滑块、验证码、IP 限制,频繁采集直接拉黑账号;标准化商品 API 走官方数据通道,返回结构化 JSON,不会触发平台反爬机制,支持 7×24 小时不间断采集。

  2. 数据维度完整,一步拿到选品核心指标 item_get_pro 接口一次性返回商品全量信息:基础标题、主图、SKU 定价、历史售价、月销、总销量、买家评价、店铺层级、运费险、7 天无理由、新品标、同款竞品、类目属性,不用多接口拼接。

  3. OpenClaw 轻量化调度,零运维成本 OpenClaw 内置定时任务、消息告警、数据存储、异常重试能力,不用单独搭建定时调度服务;支持多任务并发,同时监控上百款竞品,采集失败自动重试,超时熔断,避免程序卡死。

  4. 低成本快速落地 无需复杂分布式架构,本地电脑 / 轻量云服务器即可部署,新手半天就能搭建完整选品监控系统。

二、接口基础说明(taobao.item_get_pro)

本次使用的商品详情高级查询接口 item_get_pro,核心作用:传入商品 ID / 商品链接,返回完整商品结构化数据,是电商选品、竞品监控的核心数据源。

核心入参(仅需 2 个必填)

  • num_iid:淘宝商品 ID(商品链接中 id=xxxx 后面数字)

  • appkey:接口调用密钥(注册数据平台获取) 可选扩展参数:

  • start_price/end_price:价格过滤

  • get_same:是否获取同款商品(1 开启,0 关闭)

  • get_review:是否抓取评价数据

  • get_sku:返回全部 SKU 规格售价

接口返回关键字段(选品核心参考)

  1. 商品基础:title、pic_url、category、brand、item_id

  2. 销售数据:sales(月销量)、total_sold(累计销量)、price、min_price、original_price

  3. 服务标签:seven_return(7 天无理由)、quality_assure(正品保障)、fast_ship(极速发货)

  4. 店铺信息:shop_name、shop_level、seller_id

  5. 竞品拓展:same_items(同款低价竞品列表)

  6. 用户反馈:review_count、good_review_rate(好评率)

三、环境准备

1. 工具依赖

  1. OpenClaw 最新稳定版(本地部署,开源框架)

  2. Python3.8+

  3. 第三方库:requests、json、time、sqlite3、datetime

# 一键安装依赖
pip install requests

2. OpenClaw 基础配置

  1. 本地部署 OpenClaw,完成基础初始化;

  2. 在 OpenClaw 技能商店安装定时任务、消息通知、本地存储技能;

  3. 新建自定义采集 Skill,用于封装淘宝 API 请求逻辑。

3. 接口密钥准备

前往数据服务平台注册账号,创建应用获取专属 appkey,保存备用(文中代码替换为自己密钥)。

四、完整可运行代码(Python+OpenClaw 调度)

4.1 淘宝 API 数据请求封装函数

新建taobao_api.py,统一处理接口请求、异常捕获、数据解析

import requests
import json
import time

# 接口基础配置
API_HOST = "https://open.onebound.cn/api/taobao/item_get_pro"
APP_KEY = "你的专属appkey"  # 替换自己密钥

def get_taobao_item_detail(num_iid: str) -> dict:
    """
    调用淘宝item_get_pro接口获取商品完整数据
    :param num_iid: 商品ID
    :return: 商品结构化字典
    """
    params = {
        "key": APP_KEY,
        "num_iid": num_iid,
        "get_same": 1,      # 开启同款商品查询
        "get_review": 1,    # 拉取评价数据
        "get_sku": 1        # 获取全部SKU价格
    }
    try:
        resp = requests.get(url=API_HOST, params=params, timeout=15)
        resp_data = resp.json()
        # 判断接口返回状态
        if resp_data.get("code") != 0:
            print(f"商品{num_iid}采集失败:{resp_data.get('msg')}")
            return {}
        item_info = resp_data.get("result", {})
        return item_info
    except Exception as e:
        print(f"接口请求异常:{str(e)}")
        return {}

if __name__ == "__main__":
    # 测试单商品采集
    test_item_id = "723456123456"
    res = get_taobao_item_detail(test_item_id)
    print(json.dumps(res, ensure_ascii=False, indent=2))

4.2 本地数据库存储模块(sqlite3,无需额外安装数据库)

新建db_storage.py,用于持久化商品历史数据,实现价格、销量异动对比

import sqlite3
import datetime

def init_db():
    # 创建商品监控数据表
    conn = sqlite3.connect("taobao_monitor.db")
    cursor = conn.cursor()
    create_sql = """
    CREATE TABLE IF NOT EXISTS item_monitor (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        item_id TEXT NOT NULL,
        title TEXT,
        price REAL,
        min_price REAL,
        sales INTEGER,
        review_rate REAL,
        shop_name TEXT,
        collect_time DATETIME
    )
    """
    cursor.execute(create_sql)
    conn.commit()
    conn.close()

def save_item_data(item_data: dict):
    """存储单条商品采集数据"""
    if not item_data:
        return
    conn = sqlite3.connect("taobao_monitor.db")
    cursor = conn.cursor()
    item_id = item_data.get("num_iid", "")
    title = item_data.get("title", "")
    price = float(item_data.get("price", 0))
    min_price = float(item_data.get("min_price", 0))
    sales = int(item_data.get("sales", 0))
    review_rate = float(item_data.get("good_review_rate", 0))
    shop_name = item_data.get("shop_info", {}).get("shop_name", "")
    now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

    insert_sql = """
    INSERT INTO item_monitor
    (item_id, title, price, min_price, sales, review_rate, shop_name, collect_time)
    VALUES (?,?,?,?,?,?,?,?)
    """
    cursor.execute(insert_sql, (item_id, title, price, min_price, sales, review_rate, shop_name, now))
    conn.commit()
    conn.close()

def get_last_record(item_id: str):
    """查询商品上一次采集记录,用于对比异动"""
    conn = sqlite3.connect("taobao_monitor.db")
    cursor = conn.cursor()
    cursor.execute("""
        SELECT price, sales FROM item_monitor
        WHERE item_id = ? ORDER BY collect_time DESC LIMIT 1
    """, (item_id,))
    res = cursor.fetchone()
    conn.close()
    return res if res else None

4.3 监控告警 + 选品筛选核心逻辑(monitor_task.py)

实现:定时采集→数据入库→对比历史数据→价格 / 销量变动告警→蓝海品筛选

from taobao_api import get_taobao_item_detail
from db_storage import init_db, save_item_data, get_last_record
import time

# 待监控商品ID列表,批量添加竞品
MONITOR_ITEM_LIST = [
    "723456123456",
    "723456789012",
    "723456987654"
]

# 选品阈值配置(可自行调整)
PRICE_DOWN_ALERT = 0.08  # 价格下跌8%触发告警
SALES_UP_THRESHOLD = 30  # 单次销量上涨30+标记潜力款
LOW_COMPETITION_SALES = 200  # 月销低于200判定蓝海小类目

def analysis_item(item_data: dict):
    """商品数据筛选,输出优质选品标记"""
    sales = int(item_data.get("sales", 0))
    review_rate = float(item_data.get("good_review_rate", 0))
    min_price = float(item_data.get("min_price", 0))
    tips = []
    # 蓝海品判定
    if sales < LOW_COMPETITION_SALES and review_rate > 0.9:
        tips.append("【蓝海潜力款】低销量+高好评,竞争小")
    # 低价爆款判定
    if sales > 1000 and min_price < 30:
        tips.append("【低价爆款】高销量低客单,适合铺货")
    # 高利润款
    original_price = float(item_data.get("original_price", 0))
    if original_price > 0 and (original_price - min_price) / original_price > 0.4:
        tips.append("【高利润款】溢价空间超40%")
    return tips

def monitor_single_item(item_id: str):
    """单商品监控流程"""
    item_info = get_taobao_item_detail(item_id)
    if not item_info:
        return
    # 存入数据库
    save_item_data(item_info)
    # 获取上次数据对比
    last_data = get_last_record(item_id)
    curr_price = float(item_info.get("min_price", 0))
    curr_sales = int(item_info.get("sales", 0))
    alert_msg = []
    if last_data:
        last_price, last_sales = last_data
        # 价格下跌告警
        if last_price > 0 and (last_price - curr_price) / last_price >= PRICE_DOWN_ALERT:
            alert_msg.append(f"价格异动:原价{last_price},现价{curr_price},降价幅度超8%")
        # 销量暴涨告警
        if curr_sales - last_sales >= SALES_UP_THRESHOLD:
            alert_msg.append(f"销量爆发:新增销量{curr_sales - last_sales},市场需求上涨")
    # 选品标签
    select_tips = analysis_item(item_info)
    # 输出监控日志,OpenClaw可对接企业微信/钉钉推送消息
    print("="*60)
    print(f"商品:{item_info.get('title')}")
    print(f"当前售价:{curr_price} 月销量:{curr_sales} 好评率:{item_info.get('good_review_rate')}")
    if alert_msg:
        print("【异动告警】")
        for msg in alert_msg:
            print(msg)
    if select_tips:
        print("【选品标签】")
        for tip in select_tips:
            print(tip)
    print("="*60 + "\n")

def run_monitor_task():
    """批量监控入口,对接OpenClaw定时调度"""
    init_db()
    print("=====淘宝竞品监控任务启动=====")
    for item_id in MONITOR_ITEM_LIST:
        monitor_single_item(item_id)
        time.sleep(2)  # 接口请求间隔,避免超限

if __name__ == "__main__":
    run_monitor_task()

4.4 OpenClaw 定时调度配置(核心自动化能力)

  1. 打开 OpenClaw 客户端,新建定时 Skill 任务;

  2. 执行脚本路径填写monitor_task.py

  3. 定时规则设置:行业通用每 2 小时采集一次,高波动类目可 30 分钟采集;

  4. 开启消息推送:绑定钉钉 / 企业微信机器人,触发价格、销量异动时自动推送告警文本;

  5. 设置异常熔断:连续 5 次采集失败自动暂停任务,次日重试。

五、落地使用流程

步骤 1:批量导入竞品

把同行爆款、对标商品链接提取商品 ID,写入MONITOR_ITEM_LIST数组,支持一次性监控几十上百款商品。

步骤 2:自定义选品筛选规则

修改代码中阈值参数适配自己类目:

  • 女装:调低低价阈值,重点监控换季降价;

  • 家居百货:关注月销上涨,抓取爆款铺货机会;

  • 3C 数码:重点监控降价幅度,做比价截流。

步骤 3:数据复盘

sqlite 本地数据库会留存全部历史采集记录,可导出 CSV 表格做长期趋势分析:

  1. 同一商品近 7 天价格波动曲线;

  2. 同类目商品销量增速对比;

  3. 高好评蓝海商品批量导出选品清单。

六、避坑实操经验

  1. 接口调用频率控制 代码内置 2 秒请求间隔,不要无限制循环采集,避免超出接口调用额度,OpenClaw 定时拉长周期即可。

  2. 数据合规提醒 仅用于自身店铺竞品数据分析、市场选品参考,禁止批量搬运商品图文、批量盗图铺货,规避不正当竞争风险。

  3. OpenClaw 部署优化 长期 7×24 小时监控建议部署轻量云服务器,本地电脑休眠会中断采集;配置 OpenClaw 开机自启任务。

  4. 异常处理优化 接口偶尔超时属于正常现象,代码内置重试逻辑,无需手动重启,OpenClaw 会自动记录失败日志。

七、总结

这套 OpenClaw + 淘宝 item_get_pro 商品 API 的监控选品方案,完美解决传统爬虫不稳定、数据不全、人工统计低效的痛点。整套代码开箱即用,不用复杂开发,中小卖家、数据从业者都能快速搭建自动化选品系统。

依靠定时自动采集 + 历史数据对比 + 异动告警,我们不用每天手动刷竞品后台,系统自动筛选蓝海款、爆款、降价截流商品,大幅压缩选品时间,提前捕捉市场风口,提升店铺运营效率。

后续可拓展功能:对接 Excel 自动导出选品报表、多类目批量监控、同款商品价差对比、差评痛点提取用于产品优化。


少长咸集

群贤毕至

访客