同一个页面,人眼看到的和抓取端读到的往往不是同一份东西。人会点“展开更多”,会滚出第二屏,会在手机上切标签页;抓取程序不做这些动作,它只读一次请求返回的文本。于是常出现一种局面:内容写得完整、结论也扎实,可被读走的只有开头几段,剩下的都留在折叠层、下一页,或者只存在于桌面版。想让内容被整段摘走,先得确认它在一次请求里就能被读到。
先分清:这不是渲染的问题
遇到“内容读不到”,很多人第一反应是去查 JS 渲染。这两件事要分开处理。
渲染问题是源码里根本没有正文,拿回来的是空壳,正文靠脚本二次填充。本文说的情况是正文确实存在,只是被折叠隐藏、被切成分页,或者在移动端模板里被裁掉了。
判断只需一步:保存页面源码,用正文中一句足够独特的话去搜索。搜得到,问题在结构与可见性,按下面四步处理;搜不到,才该往渲染方向排查。混淆这两者,往往会白花半个月去做预渲染,而真正的原因是模板裁掉了内容。
三种最常见的“内容缺角”
折叠内容。 手风琴、标签页、“展开全文”按钮在产品页和帮助文档里极为常见。折叠后的文字是否进入初始 HTML 取决于实现方式:样式隐藏的通常在,点击后才发请求加载的通常不在。后者最危险——参数表、常见问题、服务范围这类高价值段落,恰好最爱做成点击加载。
分页加载与无限滚动。 长案例、评价列表、专题目录被切成十页,第二页起只能靠点击或滚动触发。抓取端拿到的就是第一页那几条,后面九页要么没有独立地址,要么地址存在却没有链接指向它。
移动端一套单独模板。 为了让手机屏幕清爽,把“适用场景”“技术参数”整块删掉、正文截成三段加个“查看详情”。这种最隐蔽,在电脑上自查永远看不出问题。
第一步:用两个身份各抓一次,比字数
自查动作很朴素:分别以桌面和移动的身份请求同一个地址,把返回内容的长度打出来对比。
curl -s -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" https://你的域名/页面 | wc -c
curl -s -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)" https://你的域名/页面 | wc -c
两个数字接近,说明两端拿到的是同一份内容;差出百分之三十以上,基本可以确定移动端模板做了删减。再把两份结果各存成文件,逐个搜索几句关键正文,就能定位到底少了哪几块。这一步不到十分钟,却常常查出长期没人发现的缺失。
第二步:把折叠内容放回页面本身
折叠是一种展示方式,不该成为内容是否存在的开关。原则是文字先进 HTML,再用样式决定默认展开还是收起。
三条具体做法:参数、问答、服务范围这类段落一次性输出到页面里,收起状态用样式控制而非按需请求;“展开全文”只保留视觉效果,不在点击时才去取正文;标签页切换的几屏内容全部写进同一份文档,切换只做显示隐藏。
改完之后再抓一次源码,确认折叠内容已经在里面。有个边界要注意:默认收起的内容如果本身价值很低,比如重复的免责声明,那就该删掉而不是留着——内容完整性指的是有效信息完整,不是字数堆满。
第三步:给分页内容留一条完整入口
分页加载不必推翻重做,但必须补两样东西:一是每页都有独立地址,能被链接直接访问,不依赖点击触发;二是给这组内容做一个汇总入口,目录页、全部展开页或按主题聚合页都行,让抓取端沿链接就能走遍所有条目。
用无限滚动的,务必额外提供一份传统分页版本。滚动是给人用的交互,链接才是给程序走的路;评价列表、案例库一旦没有可走的路,后面几十条就等于不存在。
第四步:让移动端和桌面端说同一件事
移动端内容一致性的目标不是两端排版一样,而是两端的信息量一样。屏幕小可以改布局、改层级、改字号,但不能删信息。
更省事的方案是不做两套模板,改用一套响应式模板加不同样式规则,内容源只有一份,从根上避免不一致。若必须保留两套,就建一份核对清单,把参数表、价格区间、常见问题、联系方式列为两端必须同时存在的项目,上线前逐项核对。
一张排查表
| 症状 | 自查动作 | 判定标准 | 处理方向 |
|---|---|---|---|
| 折叠段落读不到 | 源码搜折叠内的关键句 | 搜不到即为按需加载 | 改为一次性输出 |
| 第二页起不被读到 | 直接访问分页地址 | 无独立地址或无入站链接 | 补地址与汇总入口 |
| 手机版内容偏少 | 两种身份各抓一次比长度 | 差异超三成 | 核对缺失块并补回 |
| 内容存在却排在很后 | 看关键段在源码中的位置 | 结论段落位置过深 | 把关键结论提前 |
四行动作十分钟内能跑完,可直接贴进上线前的检查流程。
两个容易走偏的做法
一是为了“摊平”把内容堆成一整页,不分小标题、不做结构。摊平解决的是能不能被读到,不解决能不能被整段摘走——内容仍要切成一块块自成一体的可引用内容,每块有明确小标题和独立成立的结论。
二是用样式隐藏一堆无关文字充数。这类做法查得出也压得住,收益远小于风险。判断标准只有一条:这段文字展示给用户看是否仍然合理,答案是否,就不该出现在页面里。
改完怎么确认
抽三个代表性页面复查:一个长参数产品页、一个分页案例库、一个帮助文档。每个页面做三件事——两种身份各抓一次比长度、搜索三句原本被折叠的正文、直接访问一个非首页的分页地址看是否正常返回。
三项都通过,说明内容缺角已经补上。这类改动不需要重写一个字,却常常比再写十篇新稿有效——内容一直都在,只是从来没被读到过。