先判断输入是什么,再选择转换路线
一间社区音乐学校准备整理公开课程目录:部分资料是带合并表头的截图,部分是网站列表,还有几页 HTML 课程说明。目标是得到可核对的课程表及带来源的 Markdown 档案,不是把所有画面强行套成同一种表格。本例是操作设计,没有实际采集学校网站、调用识别服务或生成工作簿。
原文覆盖图片转 Excel、网页表格与列表导出 CSV/JSON、HTML 与文档转 Markdown 三条路线。它们的误差来源不同:图片需要识字并重建空间关系,网页要找到实际数据和分页,Markdown 转换则可能丢失结构。输出能打开不等于内容准确,来源和未确认项必须随结果交付。
路线一:截图识别后先保留证据
建立输入清单,记录文件名、来源、日期、页码或图片区域、目标表以及可用权限。原图只读保存,裁切与增强生成副本。检查分辨率、旋转、遮挡、语言和是否跨页;被截掉的课程名不能靠上下文猜补,先列为缺失。手机拍摄的透视和阴影会影响列位置,必要时重新取得清晰图。
先用一张复杂样例确认列结构,再批量处理。示例截图有“课程”“时间”“费用”三组表头,其中费用分材料费与学费,必须展开成明确字段;注释“可选材料包”不能混入价格。合并单元格和空白项分别处理,不能把上一行的课程名无条件填到所有后续行。批次中的每张图保留自己的源行定位,防止相似标题造成错误拼接。
识别输出先保留原文本值,再生成经规则确认的类型。例如课程代码 0017 应保留为文本,费用中的逗号、小数点和币种按目标地区规则解释,时间区间不自动转成 Excel 日期。看不清的 7 与 1、括号负数、手写备注和脚注标为待审,纠错建议不能覆盖原识别值。视觉模型的置信表达不是正确率证明。
工作簿至少区分已审核数据、待核对单元格和来源说明。数值列只有在确认单位与解析规则后才参与公式,文本形式的数字要检查计算是否真正生效。合计可辅助发现错位,但合计相等也可能有抵消错误。人工核对关键字段与所有标记项,再抽查无标记行;财务或决定性用途需要更严格的逐项核验。
路线二:网页数据先找稳定结构
优先查看网站是否提供公开下载或获准 API;没有时再检查页面中的表格或列表。记录入口 URL、查询条件、时间、语言与排序。公开可见并不自动授权任意规模采集或重新分发,按实际站点要求、使用权限和合理频率安排范围,不绕过登录、验证码或访问限制。
静态 HTML 中能找到课程行时,可按明确选择器抽取标题、时间、价格、链接和来源页。不要以视觉上“第三个 div”作为长期稳定规则;用能解释的结构,并在找不到预期字段时停止标记。表格中没有列名就回到可见内容确认,空单元格、缺字段和抓取失败应是不同状态。
如果页面只返回骨架,而课程由脚本加载,静态抓取不会自动得到浏览器看到的内容。可在获准环境观察实际渲染结果,等待定义好的数据状态,再选择适合的浏览器方案或官方数据入口。虚拟列表可能只在 DOM 中保留可见几行,不能把屏幕上十行当成全部课程。不要无限滚动来猜总量。
分页清单记录页码或游标、请求状态、提取条数、下一页与停止原因。以课程稳定 ID 去重,同时保留来源页;标题相同的不同时间班不能合并。检测下一页重复、空页、循环游标和局部失败,设定边界,只重试适合重试的部分。缺了一页时交付应注明覆盖范围,不能说全站已完成。
导出 CSV 时确认编码、分隔符、引号和换行,JSON 保留嵌套关系与类型说明。外来单元格可能以等号等公式起始符开头,给电子表格使用的导出要按明确策略作为文本处理,并保留未经改变的安全来源副本供核对。逐条数据附来源 URL 和采集时间,方便更新与争议回查。
路线三:把 HTML 转成可追溯 Markdown
先确定是转换本地文件,还是先从 URL 获取内容。URL 获取本身需要联网;“在本地转换”不能推出整条流程从不访问网络或上传。图片识别、插件、模型与外部转换 API 也可能带来不同的数据路径。运行前检查选定实现、配置和日志,不根据工具名称作隐私保证。
从主体区域保留标题层级、段落、列表、链接和表格,过滤导航与重复页脚,但不能把价格脚注、更新时间或适用条件误删。将相对链接解析为可追溯地址,记录原页标题、URL、取得时间和本地来源标识。把提取正文与后续总结分开,AI 补写的解释不应混成原文。
Markdown 简单表格不善表达多层合并表头或复杂排版。可以把复杂课程费率另存 CSV/JSON,在正文链接到它;不必强行压成无法分辨列归属的一张管道表。图片替代文本与 OCR 文字分别标注,不能声称转换工具自动理解了所有图表。归档后检查标题、第一段、重要表格、注释与链接,保留失败文件清单。
内容结构化有助于后续检索和整理,但不会保证被搜索引擎收录、排名上升或让所有 AI 正确理解。检索还依赖获取权限、索引与查询过程。需要入库时单列文档版本和重复处理策略,不能把成功写出 Markdown 当成已建好知识库。
一次具体的三路交付
先选一张含合并表头截图、一页分页课程列表和一份 HTML 说明作为小样。固定字段为课程 ID、名称、时间原值、费用原值、已解析金额、币种、来源与审核状态。图片路线输出单元格待审表,网页路线输出页面覆盖清单,Markdown 路线输出结构损失说明。负责人确认小样后再扩到其他输入。
验收逐层进行:文件可打开、行列正确、类型可计算、关键值与来源一致、缺失和未知没有被填平。统计输入数、成功数、部分成功与失败数,说明实际覆盖,而非只报“转换成功率”。原文六个工具名称并不构成本例实际运行证据,本例所有数值与处理动作仍是方案要求。
复核时还应检查工作表是否隐藏了行列、筛选是否排除部分课程,以及导出链接是否实际指向对应来源。多张图片若含重复页眉和跨页小计,先标明其角色,再决定是否进入数据区;不把页脚当课程、不把续表当新表。交接人应能从任一结果行回到原始证据,不依赖转换者口头解释。
可核验 Skill 的使用位置与前提
Exploratory Data Analysis适用于已经导出的获准本地 CSV/JSON 的质量检查,核对支持格式的缺失、重复观察、异常分布和字段类型问题。它用在转换后,不是截图 OCR、浏览器爬取或生成 Excel 的替代品,也不能证明原图与结果逐格一致。
使用前指定数据根目录与只读输入,确认 Python 3.11+ 和固定来源要求的可选依赖。报告以聚合信息为主,不打印含个人信息的原始记录。发现异常先回到源图或源页核对,不让分析流程默默改写值。它的 MIT 许可证与固定版本可在详情页复查;静态核验不是本例运行认证。
原文其他工具没有在本专题建立对应本站源码证据,因此不凭名称猜链接。发现新候选时描述输入类型、语言、复杂表头、导出格式、是否允许联网与验收产物;核对源码、SKILL.md、依赖和实际数据去向,再用一份脱敏样例试跑。批量处理目录也要先界定范围,避免递归转换无关私人文件。
排查与 FAQ
识别后行列错位?回看图像、合并表头和跨页关系,先修结构再改字。网页结果只有十行?检查分页、虚拟列表和筛选,而不是补出预期条数。CSV 打开中文乱码?确认编码与导入方式;价格不计算?核对文本类型、币种与地区分隔符。不要一键转数值破坏前导零代码。
Markdown 没有注释?检查主体选择范围与转换限制,不能把不见了当成原文没有。扫描 PDF 能否直接用 PDF 表格解析器?未必。GitHub 的 pdfplumber 明确偏向机器生成 PDF,不提供 OCR,因此不能把它用作截图识字方案。重复运行怎样避免重复数据?保留输入标识、源记录 ID 与版本,区分替换、追加和部分恢复,先试小样。
来源
中文原文提供三种输入与输出场景。GitHub 检索参考 pdfplumber的能力边界:它有公开表格提取与调试文档,但不适合作为本例图片 OCR 的统一答案,因此选择分路线处理;未下载或执行其代码。 EDA 固定来源用于核验转换后本地质量检查范围。