采集规则编写时,首页与内页的任务分配应遵循一条主线:首页负责发现入口,内页负责提取字段。具体做法是让首页规则只抓取栏目页或详情页的链接,把标题、正文、时间、作者等字段留给内页规则处理;两类规则分开维护,避免一条规则同时承担导航和内容提取两种职责。
动手写规则前,先把目标站点拆成层级。常见结构是:首页或列表页包含若干链接,链接指向详情页,详情页里才是需要入库的字段。判断依据是页面类型,而不是网址长短。可以按下面的检查项过一遍:
如果入口页本身也带正文摘要,不要急着在首页规则里提取正文,否则后续详情页规则会与它冲突。先确定字段归属,再决定规则写在哪一层。
首页或列表页规则的核心任务是产出可继续访问的链接。它通常需要处理列表容器、链接选择器和翻页逻辑。内页规则的核心任务是从单个详情页提取结构化字段,它不负责发现新链接,只对传入的网址逐条处理。
一个可执行的分配方式是:
最关键的一步是先固定内页字段,再回头调整首页链接。因为字段结构决定了下游数据是否可用,而链接只是入口。若先堆首页链接,后面很容易因为详情页字段不统一而反复返工。
验证时不要只看抓取数量。可以取三条不同类型的详情页做对照:一条来自首页直接推荐,一条来自列表翻页,一条来自栏目页。检查同一字段是否都能取到值,缺失时是规则问题还是页面本身没有该字段。
常见现象与可能原因:
判断结果的标准是:首页规则输出的链接能稳定进入内页规则,内页规则对样本页的字段提取结果一致。达不到这一点,先修规则,不要扩大采集范围。
页面改版后,先判断变化发生在哪一层。入口页的列表结构变了,就改首页规则的链接选择器和翻页逻辑;详情页的字段位置变了,就改内页规则。若两层同时变化,先恢复内页字段提取,再恢复入口链接,因为字段是最终交付物。
维护时保留一份字段对照表,记录每个字段来自哪一层、用什么选择器、最近一次验证的样本网址。这样下次页面调整时,能快速定位是首页任务还是内页任务需要修改。对于采集规则编写来说,首页与内页的分配不是一次性的,而是随页面结构变化持续校准的过程。
下一步可以选一个目标栏目,先写出内页字段清单,再写首页链接规则,用三条样本页跑通后再扩展到全站。