要优化资料页表格结构让AI顺利提取数据,核心就是让表格机器可读:用<table>、<thead>、<tbody>、<th>这些标签把表头和数据区分开,别用图片代替文字,也别搞一堆跨行跨列。有个简单的核验动作:打开浏览器开发者工具,看表格里是不是只有<table>、<tr>、<td>、<th>这些标准标签,有没有<img>或嵌套的表格。
为什么AI经常读错你的表格
AI抓取表格通常依赖HTML结构,常见问题包括:没有用<th>标记表头,导致AI分不清哪行是标题;大量使用colspan和rowspan让行列关系混乱;把表格做成截图直接贴上去,AI只能靠OCR识别,准确率大打折扣;还有些表里套表,层级复杂。拿个例子说,你拿个合并了多行多列的统计表,AI很可能把第二行的数据当成前一项行的,原因就是缺少scope属性,跨单元格破坏了自然顺序。建议你在写表格代码时,先想清楚:哪些单元格是表头,哪些是数据,然后严格按照标签去写。
标准表格的骨架:用好thead、tbody、th
最稳妥的结构是:<table>里面直接跟<thead>(放表头行),接着<tbody>(放数据行),每一行的列数保持一致。表头单元格用<th>,并加上scope="col"或scope="row"告诉AI是列标题还是行标题。比如一个产品价格表,前一项行是“产品”“价格”“库存”,就用<th scope="col">;如果左侧前一项列也是标题,比如“苹果”“香蕉”,就用<th scope="row">。别图省事把所有单元格都写成<td>。
合并单元格能少则少,必要时拆分
很多资料页喜欢用跨行跨列来让表格看起来更紧凑,比如“2023年”合并两行,“总计”合并四列。但AI在处理时会把合并的空缺当成缺失值,或者把多行内容连在一起,导致数据错位。如果真的需要合并,可以用colspan和rowspan,但务必在<th>上也加上对应的scope属性,并且手动补全缺失的单元格占位(比如用空<td></td>)。更好的办法是:把合并的列或行拆开,用<thead>里的多行表头表示层级关系,比如用两行<th>分别表示“年份”和“季度”,这样AI能直接通过标签层级理解。
给表格加个caption和summary(虽然已弃用但有用)
<caption>标签放在<table>开头,能直接提供表格标题,AI抓取时会优先读取。另外旧版的summary属性虽然HTML5不再强制,但很多AI工具仍然认,可以写一段文字描述表格的作用和结构。比如“本表格展示了不同产品的销售额和利润,前一项列是产品名,第二列是销售额,第三列是利润”。注意别和caption重复,caption通常只写标题,summary可以更详细。
验证表格是否达标:用这几个工具查一遍
写完表格结构后,可以用Google的“富媒体搜索结果测试”(也就是以前的“结构化数据测试工具”),输入URL或代码片段,看它能不能正确解析出表格内容。另外浏览器开开发者工具,在Console里输入document.querySelectorAll('table'),查看表格数量;再点开每个表格检查thead、th、scope等元素是否存在。如果发现某个th没有scope属性,赶快补上。最后可以扔给一个AI工具(比如GPT或者搜索引擎的摘要预览),让它读一遍表格数据,看有没有遗漏或者窜行。