火车头采集规则里,首页任务通常负责抓列表和翻页,内页任务负责抓详情字段,两者通过“采集网址”和“内容页网址”衔接。判断分配是否合理,看三点:列表页能否稳定翻页、详情页是否只处理单条记录、字段是否各归其位。下面按已有项目改进的角度说明。
在火车头采集器里,一条采集规则通常包含“采集网址”和“采集内容”两个环节。首页任务对应列表页:从一个入口页开始,提取所有详情页链接,并处理下一页。内页任务对应详情页:拿到单条链接后,提取标题、正文、时间、作者等字段。
如果首页任务同时抓正文,或内页任务负责翻页,规则会变复杂,出错时也难定位。更稳的做法是让首页只产出链接,内页只消费链接。
首页任务的核心是“找到所有详情页链接,并走到最后一页”。具体检查项:
<ul>、<div>等容器缩小范围,避免把导航、推荐位链接一起抓进来。/article/或数字ID的地址。验收信号:首页任务跑完后,网址库里的链接数量与列表页实际条目大致吻合,且每条都能打开详情。
内页任务拿到网址后,只做字段提取。具体检查项:
<h1>、<div>、<span>等位置。验收信号:随机抽查几条记录,标题完整、正文无多余模块、时间格式统一。
常见做法是:首页任务采集网址,内页任务采集内容,两者通过网址传递。如果目标系统支持,也可以让首页任务直接产出待采集列表,再由内页任务逐条处理。
假设一个项目有10个栏目,每个栏目都有分页。可以让首页任务按栏目分别建规则,内页任务共用一套字段规则。这样改版时只需调整对应栏目的列表规则,不影响其他栏目。
适用条件:列表结构一致、详情页模板一致时,共用内页规则效率最高;如果不同栏目详情页结构差异大,就按模板拆成多套内页规则。
如果出现漏采,先判断是首页没抓到链接,还是内页没提取到字段;这两类原因的排查方向不同,不要直接改字段规则。
下一步:拿现有规则,先只保留首页任务跑一遍,记录网址库数量,再决定内页规则是否需要拆分。