利用爬虫获取 1688 商品详情:高效采集完整方案(含原生爬虫风险 + Open Claw 合规替代方案

一、先说重点:原生爬虫爬 1688 的致命痛点(不推荐自研爬虫)

1688 有极强反爬体系,直接写 requests/selenium 爬虫会遇到多重限制:

  1. 高频滑块验证、人机校验:短时间批量请求直接弹出验证码,自动化难以绕过;
  2. 接口加密签名:商品详情、价格、SKU 接口携带复杂 ak/sk/token 动态签名,每次请求参数实时变化;
  3. IP 封禁:单 IP 并发抓取几十条就会限制访问,需要大量代理池,成本极高;
  4. 合规风险:违反 1688《开放平台服务协议》,批量爬取商用会被起诉、索赔,店铺有牵连封禁风险;
  5. 页面动态渲染:价格、SKU、详情图通过 JS 异步加载,静态 requests 拿不到完整数据。

二、两种采集方案对比

表格

方案 难度 稳定性 合规性 成本 数据完整度
自研 Selenium/Playwright 爬虫 极低,频繁封号 不合规 代理池 + 服务器成本高 容易缺失阶梯价、代发价
Open Claw 封装 API(推荐) 极低 高,平台处理反爬 服务商合规采集 按量计费,免费测试额度 全量 B2B 专属字段(阶梯价、代发、工厂资质)

三、方案 1:原生爬虫(仅学习演示,不建议商用)

3.1 轻量静态爬虫(仅能抓基础页面,拿不到批发价 / SKU)

python

运行

复制代码
import requests
from lxml import etree

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "referer": "https://www.1688.com/"
}

def simple_crawl_1688(url):
    res = requests.get(url, headers=headers, timeout=15)
    html = etree.HTML(res.text)
    # 仅能提取基础标题,批发价、SKU、代发价JS渲染无法获取
    title = html.xpath('//h1[contains(@class,"title-text")]/text()')
    print("商品标题:", title[0].strip() if title else "获取失败")

simple_crawl_1688("https://detail.1688.com/offer/680000000000.html")

缺陷:批发阶梯价、一件代发价、库存、SKU 全部为空,核心 B2B 数据缺失。

3.2 无头浏览器 Playwright 动态爬虫(可渲染 JS,但反爬严重)

python

运行

复制代码
from playwright.sync_api import sync_playwright

def playwright_crawl_1688(url):
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=False) # 无头模式headless=True极易被检测
        page = browser.new_page(user_agent="Mozilla/5.0 Chrome/120")
        page.goto(url, timeout=30000)
        page.wait_for_timeout(3000)
        title = page.locator('h1.title-text').inner_text()
        print("标题:", title)
        browser.close()

# 运行后大概率弹出滑块验证,批量采集完全不可行
playwright_crawl_1688("https://detail.1688.com/offer/680000000000.html")

四、方案 2:高效合规采集(Open Claw API,商用首选)

4.1 核心优势(解决爬虫全部痛点)

  1. 平台底层处理 IP 代理、滑块、签名加密,无需维护爬虫、代理池;
  2. 无需 1688 企业开发者账号,个人注册即可调用;
  3. 返回完整结构化 JSON,包含爬虫拿不到的阶梯批发价、一件代发价、起批量、工厂资质
  4. 无法律风险,服务商统一合规对接,适合店群、ERP、AI 选品系统商用;
  5. 支持以图搜货 + 批量详情抓取联动,效率远超爬虫。

4.2 商品详情采集完整代码

python

运行

复制代码
import requests
import pandas as pd

# Open Claw后台获取密钥
KEY = "你的key"
SECRET = "你的secret"

def get_1688_detail(num_iid):
    api_url = "https://api-gw.onebound.cn/1688/item_get"
    params = {
        "key": KEY,
        "secret": SECRET,
        "api_name": "item_get",
        "num_iid": num_iid,
        "agent": 1,       # 返回一件代发价
        "sku_detail": 1,  # 返回完整SKU库存、规格
        "sales_data": 1   # 返回30天销量数据
    }
    resp = requests.get(api_url, params=params, timeout=20)
    data = resp.json()
    if data["code"] == 200:
        return data["result"]
    else:
        print(f"抓取失败 {num_iid}: {data['msg']}")
        return None

# 批量采集并导出Excel
def batch_export(goods_id_list):
    all_data = []
    for iid in goods_id_list:
        item = get_1688_detail(iid)
        if not item:
            continue
        row = {
            "商品ID": item["num_iid"],
            "标题": item["title"],
            "代发价": item["agent_price"],
            "最小起批量": item["min_num"],
            "月销量": item["month_sales"],
            "发货地": item["delivery_place"],
            "店铺类型": item["seller_type"],
            "详情图数量": len(item.get("desc_img", []))
        }
        all_data.append(row)
    df = pd.DataFrame(all_data)
    df.to_excel("1688商品采集表.xlsx", index=False)
    print("批量采集完成,已导出表格")

if __name__ == "__main__":
    # 批量商品ID列表
    goods_ids = ["680000000000", "690000000001"]
    batch_export(goods_ids)

五、爬虫采集效率优化避坑指南(若坚持自研爬虫)

  1. 请求频率控制:单次请求间隔 3~5 秒,禁止多线程并发;
  2. UA 随机轮换:维护大量浏览器 User-Agent 池,每次请求随机切换;
  3. Cookie 持久化:浏览器首次访问缓存 Cookie,避免频繁触发验证;
  4. 代理池必备:使用住宅动态代理,禁止机房静态 IP;
  5. 禁止高频批量:单日抓取不超过 200 条,否则 IP 永久封禁;
  6. 数据兼容:单独请求 1688 隐藏的商品接口,解析加密返回的 JSON 获取价格(接口每天更新,维护成本极高)。
相关推荐
数据知道18 小时前
浏览器硬件参数欺骗:CPU核心数、内存大小、设备像素比的精准伪造
爬虫·数据采集·指纹浏览器·浏览器指纹
如烟花的信页20 小时前
加速乐cookie逆向分析
javascript·爬虫·python·js逆向
xmtxz1 天前
Burp Suite、爬虫、目录扫描工具实操深度总结
爬虫
yijianace1 天前
Python爬虫实战:BooksToScrape 多线程爬取与图片下载
开发语言·爬虫·python
深蓝电商API1 天前
Playwright 多浏览器并发:同时操控 100 个 Chrome 实例
爬虫·playwright
数据知道2 天前
斩断 `navigator` 前端:底层重写 UserAgent/Platform/Language 属性描述符
爬虫·数据采集·指纹浏览器·浏览器指纹
深蓝电商API2 天前
Playwright深入浅出:从入门到企业级项目实战
爬虫·playwright
小白学大数据2 天前
爬虫性能天花板:asyncio赋能 Aiohttp,并发提速 10 倍
开发语言·爬虫·数据分析
yijianace2 天前
Python爬虫实战:分页爬取 + 详情页采集 + CSV存储
前端·爬虫·python