StarNet · Product Info Auto-Scraper — 面向产品经理 / 采购 / 市场人员的小工具:粘贴产品详情页网址 → 自动提取产品信息 → 一键导出带图片的 Excel 表格。
| 功能 | 说明 |
|---|---|
| 批量抓取 | 每行一个网址,可一次抓取多个产品;多线程并行抓取(默认 4 线程) |
| 动态页面 / 反爬站点 | 自动识别 JS 反爬验证(EO-Bot / 加速乐等)与动态加载页面,内置浏览器内核渲染抓取,无需手动处理 |
| 京东商品页 | 按京东固定信息模块提取 6 项表头:商品名称、商品详情、商品参数(如 .attrs 中 品牌:爱玛(AIMA) 键值对)、商品价格(如 product-price--unit + product-price--value → ¥2599)、参考图(最多 3 个主图 URL);页面被反爬拦截/需登录时自动降级移动版或给出明确提示 |
| 数据分类 | 每行自动标注「京东类 / 普通类」:京东商品页 = 京东类,其他站点 = 普通类,手动添加/历史数据 = 普通类;可在表格中双击修改 |
| 图片文字识别 | 抓取时把网页图片的 alt/title 文字整理为“图片说明”喂给 AI,AI 智能抓取可据此理解图片中的卖点/参数内容;京东主图 alt 无重复商品名时会作为性能特点补充 |
| 三种抓取模式 | 直接抓取 / AI 智能抓取 / 自动抓取(推荐) |
| AI 可自定义 | API Key、请求地址、模型、温度、超时全部可配;主界面可直接下拉切换任意模型,也可手动输入模型名,兼容 OpenAI / DeepSeek / 通义 / 智谱 / Kimi / Ollama 等接口 |
| AI 自动补全 | 网页解析缺字段时,自动调用 AI 补全 |
| 表格编辑 | 双击单元格编辑、右键增删行、上下移动、清空 |
| Excel 导出 | 表头含「数据类别」列;带表头样式、自动换行、冻结首行;参考图片直接写全部图片链接(不下载),导出秒完成;可导出全部,也可按住 Ctrl / Shift 多选后只导出选中行 |
| 数据防丢失 | 未导出数据自动保存在 output\未导出数据.json,重启后自动恢复 |
| 测试连接 | 正确:显示 连接成功:模型名,耗时 xx 毫秒;错误:显示 测试不通 及原因 |
| 现代界面 | 基于 CustomTkinter 的深色现代化 UI,控件圆角、配色统一,支持缩放自适应 |
| 命令行模式 | 适合自动化批量抓取 |
- Windows 10 / 11
- Python 3.10 或更高版本(本机已安装 Python 3.14,无需再装)
- 依赖库:
requests、beautifulsoup4、openpyxl、Pillow、customtkinter(本机已全部安装)
在一台没有安装过运行环境的新电脑上使用本工具,按以下步骤操作(大约 3-5 分钟):
- 打开官网 https://www.python.org/downloads/ 下载 Python 3.10 或更高版本(推荐 3.12+)
- 安装时务必勾选
Add Python to PATH(添加到环境变量),否则命令行找不到 python - 安装完成后,可打开「命令提示符」输入
python --version验证,能显示版本号即成功
若电脑已有 Python,可跳过此步。
没有 Python 的电脑也没关系:脚本会自动安装 Python(优先用 winget,winget 不可用或失败时自动从 python.org 静默下载安装),缺少的依赖库自动补装,pip 默认源失败会自动切换清华镜像,Playwright 下载失败会自动切换国内镜像。
把整个项目文件夹复制到新电脑后,双击 安装依赖.bat。脚本是智能检测的——电脑已有的环境会自动跳过,只安装缺失的部分:
| 步骤 | 内容 | 智能行为 |
|---|---|---|
| 1 | 检测 Python | 已有 Python → 跳过;没有 → 自动安装(winget,失败则自动官网静默安装) |
| 2 | 快速检测环境 | 依赖+浏览器全部就绪 → 直接提示"环境已就绪",不做任何安装 |
| 3 | 补齐缺失依赖 | 只安装缺失的库(已装的跳过) |
| 4 | 下载 Playwright 浏览器 | 检测到已有 Chromium 内核 → 跳过;没有 → 才下载 |
推荐双击 启动产品信息抓取工具.vbs(完全无黑色命令窗口);双击 启动产品信息抓取工具.bat 同样可用(脚本会自动隐藏命令窗口)。
如果启动时提示"请先安装运行环境",说明依赖未装好,请回到第 2 步。
- 已经有 Python 或部分依赖,还要重装吗? 不用。安装脚本会自动检测,已存在的环境(Python / 依赖库 / Playwright 浏览器)全部跳过,只安装缺失的部分;全部就绪时直接提示完成,可随时双击验证。
- 启动自动检测环境:已有真实 Python 和依赖的电脑会直接启动、跳过安装;没有时会自动安装(winget → 官网安装包兜底,pip/Playwright 用国内镜像兜底)。微软商店的 python.exe 占位程序会被识别并跳过,不会误判为"已安装";
- 启动时会闪一下黑色小窗? 双击
.bat时 Windows 系统必定会短暂显示命令行窗口,这是 .bat 的固有机制,无法完全避免;改用启动产品信息抓取工具.vbs启动就完全不会出现黑窗。 - Playwright 下载慢或失败:可跳过第 3 步(在脚本提示时直接关掉窗口),不影响直接抓取;仅动态/反爬网页需要浏览器内核,之后可随时重跑
安装依赖.bat补装; - 换电脑/重装系统:重装 Python 后重新双击
安装依赖.bat即可,项目文件本身不需要改动。
- 双击 启动产品信息抓取工具.vbs(推荐,无命令窗口)或 启动产品信息抓取工具.bat(自动隐藏窗口);也可在命令行运行
python main.py - 在输入框粘贴产品详情页网址(每行一个)
- 点击抓取按钮:
- 直接抓取:纯网页解析,适合页面结构清晰、参数在 HTML 中的网站
- AI 智能抓取:抓取网页正文后交给 AI 提取全部字段(需要先配置 AI)
- 自动抓取(推荐):先直接抓取,缺的字段自动交给 AI 补全;未配置 AI 时等同直接抓取
- 检查、编辑表格
- 导出 Excel:点击 📤 导出全部 导出所有行;或先在表格中按住 Ctrl / Shift 多选需要的行,再点击 ☑ 导出选中行(选中行会按 1、2、3…重新编号)
**京东网页抓取提示:**京东对未登录访问会跳转到登录/验证页,导致程序抓不到商品数据。本程序已内置 京东登录 功能:首次抓取京东商品前,点击按钮区 京东登录,程序会打开一个可见浏览器窗口,扫码/账号登录一次后自动保存登录状态;之后抓取京东商品会自动复用该登录(保存到
output/jd_cookies.json)。若登录过期,再次点击京东登录即可更新。
主界面即可随时切换模型:顶部“模型:”下拉框会启动时自动拉取该 API 的全部模型,选中任一个立即生效(也可手动输入任意模型名);也可在设置窗口中获取更多模型。
点击主界面 ⚙ AI 设置,窗口提供:
- 已保存配置:可保存多套 AI 配置(不同服务商),下拉切换、删除、★设为默认,类似 CC-Switch 的供应商管理;打开设置窗口自动载入默认配置,程序启动时自动使用默认配置;
- 服务商预设:内置 白嫖中转 / OpenAI / DeepSeek / 通义千问 / 智谱 / Kimi / 硅基流动 / Ollama 等,与已保存配置一起显示在“已保存配置”下拉列表中(预设带“(预设)”标记),选中即可载入,也可另存为配置;
- API Key / API 请求地址 / 模型名称 / Temperature / 请求超时 / 文本截断长度 均可自定义;
- 获取模型列表:一键拉取该 API 支持的全部模型(中转站为别名列表),下拉选择;获取失败时自动载入常用模型兜底,也可手动输入任意模型名;
- 测试连接:接口连通即提示“✔ 连接成功”。免费中转站聊天接口偶发超时时,会自动改用模型列表接口判断连通性,仍返回成功提示。
| 配置项 | 说明 | 示例 |
|---|---|---|
| API Key | 服务商提供的密钥 | sk-xxxx |
| API 请求地址 | OpenAI 兼容的接口地址(中转站填根地址即可,自动补全 /v1) | https://api.example.com |
| 模型名称 | 下拉选择或手动输入,建议使用该 API 模型列表中的名称 | claude-haiku-4-5-20251001、deepseek-chat |
| Temperature | 越低越严谨,默认 0.2 | 0.2 |
| 请求超时 | 默认 120 秒 | 120 |
| 图片识别(vision) | 可选,默认关闭。开启后 AI 智能抓取会把最多 3 张产品图片一并发给模型(需模型支持视觉,如 gpt-5.x / 部分多模态模型);文本模型不支持时请保持关闭 | false / true |
配置完成后点 测试连接:API 正确时显示“✔ 连接成功:模型 xxx,耗时 xx 毫秒”;不正确时显示“✘ 测试不通:原因”。点 获取模型列表:成功显示“✔ N 个模型已获取成功,耗时 X ms”;失败显示“✘ 无法获取数据,请检查 API”。
关于中转站 / 代理站(重要):
- 请求地址填根地址即可(如
https://api.example.com),程序会自动尝试/v1/chat/completions和/chat/completions等路径,无需手动加/v1;- 中转站的模型名通常是别名,必须使用其模型列表中的名称。点击「获取模型列表」即可拉取并下拉选择,避免“模型未在别名列表中配置”的报错;
- 免费中转站偶尔超时或 404,程序已内置自动重试与多路径容错。
注意:API Key 只保存在本机
config.json中,请勿外传或提交到代码仓库。图片识别说明:所有模式都会把网页图片的
alt/title文字提取为“图片说明”提供给 AI;若希望模型直接看图,可在config.json中把ai.vision改为true(仅支持视觉的模型有效,如未开启或模型不支持则自动退回纯文本模式)。京东商品页的卖点多为详情大图,建议优先用“自动抓取/AI 智能抓取”模式并在浏览器中登录京东解决反爬。
:: 直接抓取
python main.py --cli --url https://example.com/product/123 --mode direct --export 结果.xlsx
:: AI 智能抓取(使用指定配置文件)
python main.py --cli --url https://example.com/product/123 --mode ai --config config.json
:: 自动抓取多个产品
python main.py --cli --url https://example.com/a https://example.com/b --mode auto --export 结果.xlsx没有真实 AI Key 也能先体验完整流程:
- 双击 tests\启动本地演示服务.bat(启动示例产品网站和模拟 AI 接口)
- 打开主程序,在 AI 设置中填写:
- API Key:
sk-mock-test - API 请求地址:
http://127.0.0.1:8766/v1 - 模型名称:
mock-model
- API Key:
- 输入示例网址:
http://127.0.0.1:8765/test_product.html - 点击 AI 智能抓取 或 自动抓取 即可看到 AI 补全效果
自动化抓取数据\
├── main.py 程序入口(支持图形界面和命令行)
├── app_gui.py 桌面图形界面
├── scraper.py 网页直接抓取
├── ai_extractor.py AI 智能提取(OpenAI 兼容接口)
├── exporter.py Excel 导出
├── config.py 配置加载/保存
├── config.json 你的 AI 配置(自动生成,勿提交)
├── config.example.json 配置模板
├── requirements.txt 依赖清单
├── 启动产品信息抓取工具.vbs 无命令窗口启动器(推荐双击)
├── 启动产品信息抓取工具.bat 双击启动(自动隐藏命令窗口)
├── setup_env.bat 一键安装/检测依赖(英文名,启动脚本自动调用)
├── 安装依赖.bat 一键安装/检测依赖(中文入口,与上者等效)
├── samples\ 示例产品网页(本地演示用)
├── tests\ 本地模拟 AI 服务与测试配置
└── output\ 导出文件和下载的图片
- 默认不下载图片:参考图片列直接保存网页中全部图片的 URL 链接(每行一个),Excel 导出只写文本,速度极快;
- 批量抓取多线程:多个网址并行抓取(默认 4 线程,可在
config.json的scraper.max_workers调整); - 动态页面自动渲染:遇到反爬 JS 验证页或正文过短的动态页面时,自动用浏览器内核(Playwright)渲染后抓取;可在
config.json的scraper.js_render调整("auto"自动识别 /true总是渲染 /false关闭); - 选择性导出:可一次导出全部行,也可按住 Ctrl / Shift 多选若干行后只导出选中行(选中行序号自动重排为 1、2、3…);
- 进度可见:抓取与导出过程实时显示进度,完成后显示实际用时,不再"看起来像卡住";
- 可选恢复下载:如需要图片嵌入 Excel,把
config.json中export.download_images改为true,程序会自动下载页面首图(自动压缩到最长边 800px)并嵌入表格。 - 京东专用解析:识别
item.jd.com/item.m.jd.com商品页,按京东固定信息模块提取(商品名称、商品详情、商品参数、商品价格、参考图);商品参数支持桌面版.attrs .item .label/.value结构(输出键:值),商品价格支持product-price--unit+product-price--value(输出¥2599);京东反爬较严,若直连被拦截会自动降级移动版或浏览器内核重试,仍失败时提示在浏览器登录京东后重试。 - 京东登录持久化:登录状态会同时保存 Cookie 与完整浏览器存储(
output/jd_cookies.json+output/jd_storage.json),每次成功抓取京东页面还会自动刷新保存(免重启重复扫码);程序会判断登录是否已过期并给出准确提示(仅当账号在京东侧过期才需重新扫码)。 - 京东接口自动截获:浏览器渲染京东页面时自动拦截页面自身发起的真实接口(
pc_detailpage_wareBusiness/getWareBusiness/description/channel),直接取接口返回的商品详情/参数/价格,解决“接口需要签名/登录才能调用、页面里却拿不到数据”的问题;商品详情优先取接口内的介绍文字,参考图最多 3 个链接(换行分隔)。 - 本地抓取日志:每次抓取(成功/失败)都会自动写入
output/logs/抓取日志.log,包含时间、网址、类别、模式、耗时、已获取字段与过程日志,方便回溯排查。 - 参数图片 OCR:当商品参数以图片形式呈现时,程序按“参数/规格”字眼定位区域,先取区域文字;仍为空且图片存在时,本地 OCR(需
pip install rapidocr_onnxruntime,config 中scraper.ocr=true)识别图中文字,或交给 AI 视觉识别。 - 数据分类:抓取结果自动标注「京东类 / 普通类」(京东商品页 = 京东类,其他站点 = 普通类),表格与 Excel 中都带「数据类别」列,方便按类别筛选、排序;旧数据/手动添加行默认归为「普通类」。
- AI 报“模型未在别名列表中配置”:该 API 只允许调用其模型列表中的模型,打开「AI 设置 → 获取模型列表」,选择列表中的模型即可(也可手动输入任意模型名)。
- 测试连接显示成功但没看到模型回复:正常现象——部分推理模型只输出思考过程;接口连通即为成功,可直接抓取使用。
- 获取模型列表失败:若服务商接口临时不可用,程序会自动载入常用模型列表供选择,不影响使用。
- AI 报“接口地址不存在(404)”:检查 API 请求地址是否填对;中转站填根地址(如
https://api.baipiao.eu.org)即可,程序会自动补全/v1。若使用免费中转站偶发超时,程序会自动重试,稍后再试即可。 - 抓到的字段为空:部分网站正文由 JavaScript 动态加载,静态抓取拿不到内容,建议改用“AI 智能抓取”,或直接复制网页正文到表格中。
- 参考图片显示为链接:默认不下载图片,直接保存网页中全部图片链接,方便查看与复制;如需嵌入图片可在
config.json开启download_images,或手动通过“编辑整行 → 浏览本地图片”添加。 - 网站证书报错:极少数自签名证书网站,可在
config.json中把scraper.verify_ssl改为false。 - 抓不到内容 / 只有标题:多为反爬验证或动态加载页面(如海康威视产品页),程序会自动用浏览器内核渲染重试;若仍未成功,检查
config.json中scraper.js_render是否为"auto",并确认已安装 Playwright(pip install playwright后执行playwright install chromium)。 - 乱码:请确认网页使用 UTF-8 编码;程序会自动识别常见编码。
- 导出 Excel 打不开:请确认使用 .xlsx 格式(Excel 2007 及以上版本)。
本工具仅供学习与内部工作使用。请遵守目标网站的服务条款与 robots 协议,控制抓取频率,勿用于侵权、爬取个人信息或商业滥用。