Skip to content
kejilandPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

StarNet — 产品信息自动抓取工具

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 分钟):

第 1 步:安装 Python(只需一次)

  1. 打开官网 https://www.python.org/downloads/ 下载 Python 3.10 或更高版本(推荐 3.12+)
  2. 安装时务必勾选 Add Python to PATH(添加到环境变量),否则命令行找不到 python
  3. 安装完成后,可打开「命令提示符」输入 python --version 验证,能显示版本号即成功

若电脑已有 Python,可跳过此步。

第 2 步:一键安装项目依赖(只需一次,智能跳过)

没有 Python 的电脑也没关系:脚本会自动安装 Python(优先用 winget,winget 不可用或失败时自动从 python.org 静默下载安装),缺少的依赖库自动补装,pip 默认源失败会自动切换清华镜像,Playwright 下载失败会自动切换国内镜像。

把整个项目文件夹复制到新电脑后,双击 安装依赖.bat。脚本是智能检测的——电脑已有的环境会自动跳过,只安装缺失的部分:

步骤 内容 智能行为
1 检测 Python 已有 Python → 跳过;没有 → 自动安装(winget,失败则自动官网静默安装)
2 快速检测环境 依赖+浏览器全部就绪 → 直接提示"环境已就绪",不做任何安装
3 补齐缺失依赖 只安装缺失的库(已装的跳过)
4 下载 Playwright 浏览器 检测到已有 Chromium 内核 → 跳过;没有 → 才下载

第 3 步:启动程序

推荐双击 启动产品信息抓取工具.vbs(完全无黑色命令窗口);双击 启动产品信息抓取工具.bat 同样可用(脚本会自动隐藏命令窗口)。

如果启动时提示"请先安装运行环境",说明依赖未装好,请回到第 2 步。

常见问题

  • 已经有 Python 或部分依赖,还要重装吗? 不用。安装脚本会自动检测,已存在的环境(Python / 依赖库 / Playwright 浏览器)全部跳过,只安装缺失的部分;全部就绪时直接提示完成,可随时双击验证。
  • 启动自动检测环境:已有真实 Python 和依赖的电脑会直接启动、跳过安装;没有时会自动安装(winget → 官网安装包兜底,pip/Playwright 用国内镜像兜底)。微软商店的 python.exe 占位程序会被识别并跳过,不会误判为"已安装";
  • 启动时会闪一下黑色小窗? 双击 .bat 时 Windows 系统必定会短暂显示命令行窗口,这是 .bat 的固有机制,无法完全避免;改用 启动产品信息抓取工具.vbs 启动就完全不会出现黑窗。
  • Playwright 下载慢或失败:可跳过第 3 步(在脚本提示时直接关掉窗口),不影响直接抓取;仅动态/反爬网页需要浏览器内核,之后可随时重跑 安装依赖.bat 补装;
  • 换电脑/重装系统:重装 Python 后重新双击 安装依赖.bat 即可,项目文件本身不需要改动。

快速开始

  1. 双击 启动产品信息抓取工具.vbs(推荐,无命令窗口)或 启动产品信息抓取工具.bat(自动隐藏窗口);也可在命令行运行 python main.py
  2. 在输入框粘贴产品详情页网址(每行一个)
  3. 点击抓取按钮:
    • 直接抓取:纯网页解析,适合页面结构清晰、参数在 HTML 中的网站
    • AI 智能抓取:抓取网页正文后交给 AI 提取全部字段(需要先配置 AI)
    • 自动抓取(推荐):先直接抓取,缺的字段自动交给 AI 补全;未配置 AI 时等同直接抓取
  4. 检查、编辑表格
  5. 导出 Excel:点击 📤 导出全部 导出所有行;或先在表格中按住 Ctrl / Shift 多选需要的行,再点击 ☑ 导出选中行(选中行会按 1、2、3…重新编号)

**京东网页抓取提示:**京东对未登录访问会跳转到登录/验证页,导致程序抓不到商品数据。本程序已内置 京东登录 功能:首次抓取京东商品前,点击按钮区 京东登录,程序会打开一个可见浏览器窗口,扫码/账号登录一次后自动保存登录状态;之后抓取京东商品会自动复用该登录(保存到 output/jd_cookies.json)。若登录过期,再次点击京东登录即可更新。

AI 配置

主界面即可随时切换模型:顶部“模型:”下拉框会启动时自动拉取该 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

无 Key 体验 AI 功能(本地演示)

没有真实 AI Key 也能先体验完整流程:

  1. 双击 tests\启动本地演示服务.bat(启动示例产品网站和模拟 AI 接口)
  2. 打开主程序,在 AI 设置中填写:
    • API Key:sk-mock-test
    • API 请求地址:http://127.0.0.1:8766/v1
    • 模型名称:mock-model
  3. 输入示例网址:http://127.0.0.1:8765/test_product.html
  4. 点击 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 协议,控制抓取频率,勿用于侵权、爬取个人信息或商业滥用。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages