京东 SKU 品牌类目梳理
SkillHub 发布版 · Slug:
jd-sku-brand-category-curator显示名:京东SKU品牌类目梳理
把一串京东商品 ID 或链接丢进来,自动给每个商品抓「标题 + 面包屑层级」,整理成可一键粘贴进 Excel 的 HTML 表格,或者直接出 .xlsx。类目层级不固定,几级就出几列(信息一、信息二……信息N),不写死、不强制区分「类目/品牌」——业务字段怎么用你说了算。
何时用
- 「把这 100 个 SKU 的类目抓出来」「批量识别京东商品的类目和品牌」
- 电商选品、竞品归类、商品库清洗需要批量提取京东类目路径
- 把一份运营/品牌同学的 Excel 跑一次,自动补全类目信息
三步上手
① 把要抓的 SKU 列出来
在 scripts/skus.txt 里每行一个京东商品 ID(也支持逗号/空格分隔)。示例文件已经放好,先删掉示例换上你自己的:
100396677618
10064243847665
或者跑的时候直接传:node scripts/cdp-jd-batch.js --skus "100396677618,10064243847665"
② 一条命令完成抓取
node scripts/cdp-jd-batch.js
脚本会:启动带反检测参数的独立 Chrome → 逐个打开商品页抓取标题与面包屑 → 直接生成 京东SKU类目品牌.html(带「复制表格」按钮,可一键粘贴进 Excel)。每个 SKU 之间随机 2~3.5 秒延迟防风控,跑完只关闭脚本自己启的 Chrome。
登录墙自动处理:冷 profile 访问京东商品页常被重定向到 passport.jd.com 登录页——这时候脚本会自动停在可视化 Chrome 的登录页等你在本机扫手机京东/微信,检测到登录成功后自动继续。登录态存进 scripts/.cdp-profile/,下次直接免扫。也可以强制先登录:node scripts/cdp-jd-batch.js --login
③ 拿到结果
打开 scripts/京东SKU类目品牌.html → 点页面上「复制表格」按钮 → 粘到自己的 Excel 里即可。如果要直接出 .xlsx:
node scripts/cdp-jd-batch.js --excel
会再调用 make_excel.py 产出 京东SKU类目品牌.xlsx(需 openpyxl,脚本自动安装兜底)。HTML 默认已满足「复制进 Excel」需求,Excel 是可选增强。
前置依赖(首次跑要先装)
依赖没内嵌到包里(控制 SkillHub 上传文件数 < 200 个),首次跑前手动装一下:
cd scripts
npm install
只装两个包:chrome-remote-interface + @puppeteer/browsers,几秒搞定。
- Chrome 自动下载:本机没装 Chrome 时,首次运行脚本会自动下载 Chrome for Testing 到技能目录
.chrome-cache/(约 150MB,之后复用)。默认走 npmmirror 国内镜像,国内直连即可 - 无需登录:默认匿名即可抓取;遇登录墙时按上面 ② 的说明处理
- Python + openpyxl:要做 Excel 输出时才需要,第一次跑
--excel会自动 pip install
输出长什么样
| 列 | 来源 | 说明 |
|---|---|---|
| SKU | 输入 | 你给的商品 ID |
| 标题 | document.title(已去掉尾部「【行情 报价 价格 评测】」之类广告词) | |
| 信息一 / 信息二 / … / 信息N | 面包屑 .crumb a 文本顺序 | 层级不固定,几级就出几列,缺的留空 |
注意:信息N 字段不强制区分「类目/品牌」——京东面包屑本身就混合了类目、品牌、品类等语义;建议拿表后人工一眼过一下,必要时把列名按业务重命名(如把第三列重命名成「品类」、第四列重命名成「品牌」)。
关键踩坑(务必看一遍)
- 京东风控:默认 CDP 启动会被识别为 bot,返回「最小单价计算器」占位页(无类目/品牌)。脚本已内置
--disable-blink-features=AutomationControlled+ 真实 UA +--no-sandbox,别自己删掉启动参数 - 登录墙:冷 profile 是常态,不要慌——脚本会停可视化 Chrome 等你扫码,扫完自动继续
- CDP 大坑:
Runtime.evaluate返回 JS 数组/对象时只给 objectId,必须用JSON.stringify(...)包一层(脚本已处理,别瞎改) - 层级不固定:京东面包屑可能是 3/4/5/6 级,绝不要写死列数(脚本已动态扩展)
更详细的排错看 references/troubleshooting.md。
环境变量(可选)
| 变量 | 作用 |
|---|---|
| JD_SKILL_CHROME | 指定 chrome.exe 路径(自动探测失败时用) |
| JD_SKILL_PROFILE | 指定 Chrome 用户数据目录(默认脚本内 .cdp-profile/,复用登录态) |
| JD_SKILL_CHROME_MIRROR | 切换 Chrome 下载源(默认 npmmirror 国内) |
| HTTPS_PROXY / JD_SKILL_PROXY | 走代理下载 Chrome(默认国内直连) |
文件结构
jd-sku-brand-category-curator/
├── SKILL.md ← 本文件
├── .gitignore ← 屏蔽 Chrome profile / 输出文件
├── references/
│ └── troubleshooting.md ← 反检测 / 风控 / 选择器 / 登录态排错
└── scripts/
├── cdp-jd-batch.js ← 抓取主程序(CDP + 反检测 + 登录等待 + 动态层级)
├── make_excel.py ← 可选 Excel 输出(动态列 + openpyxl 自动安装兜底)
├── skus.txt ← 输入样例(删掉换上你自己的)
├── test-dl.js ← 下载功能测试
└── package.json + package-lock.json ← 首次跑前在 scripts/ 下执行 npm install
提示
- 首次跑会下 Chrome:脚本发现本机没 Chrome 就自动去 npmmirror 下载到
scripts/.chrome-cache/(约 150MB),需要等几十秒 - 量大时分批跑:一次塞上千个 SKU 不建议,京东风控会升级;分批 100-200 个/次最稳
- 登录态保护:
scripts/.cdp-profile/是你本机的京东登录态,别手贱删,也别提交/分发到任何地方(这个包已通过 .gitignore 屏蔽) - 合规使用:本工具用于内部选品/归类时合规无虞;用于二次售卖/爬取竞争对手定价等商业敏感场景请自行评估风险
微信扫一扫