开始编写采集规则前,最需要准备的不是工具,而是目标网站本身的可核对资料:页面结构、列表与详情的链接关系、正文所在容器、分页与翻页方式,以及访问限制。缺少这些资料,规则只能靠反复试错,很难稳定运行。下面按“先看什么、怎么记录、如何验收”的顺序说明。
采集规则通常要同时处理两类页面:列表页负责发现条目链接,详情页负责提取字段。开始前应把目标网站的资料整理成两份清单。
判断结果是否合格,看能否用一条规则覆盖同一栏目下的多个页面,而不是只对某一个页面有效。如果同一栏目内结构差异明显,应拆成多条规则,而不是强行合并。
截图只能说明“看起来是什么样”,规则需要的是可定位的结构信息。建议在浏览器开发者工具中查看元素,记录以下内容:
例如,正文可能位于 <div class="article-content"> 内,而推荐模块位于同级的另一个容器中。此时规则应限定在正文容器内提取,而不是抓取整个页面文本。这一步的验收信号是:用选择器单独测试时,能准确命中目标区块,且不包含明显无关内容。
分页方式直接决定规则能否持续运行。开始前要确认:
如果站点没有稳定的时间字段,增量采集就缺少依据,只能全量重复抓取。此时应在资料清单中标注这一限制,并决定是否接受较高的重复率。适用条件是:栏目更新频率低、条目总量小;若更新频繁,重复抓取的代价会明显上升。
规则编写前还要确认目标站点是否允许抓取。可核对的资料包括:站点根目录下的 robots 文件、服务条款中关于自动访问的说明、是否需要登录或验证码。若页面需要登录才能看到正文,规则就必须处理会话状态,这会增加维护成本。
此外要区分“页面能打开”和“规则能稳定提取”。前者只说明网络可达,后者还取决于结构是否稳定、是否有频率限制。判断方法是:先用少量请求测试,观察是否出现验证、跳转或内容为空的情况。出现这些现象时,应先调整请求频率或放弃该目标,而不是继续堆叠规则。
把上述内容汇总成清单,再开始写规则:
验收信号是:换一个同栏目的页面测试,字段仍能正确提取;连续翻两到三页,链接不重复、不遗漏。若某一条不满足,回到对应资料项补充,而不是直接修改规则猜测。
下一步:选取目标网站的一个栏目,按上面的清单逐项填写,先只写列表页链接提取规则并测试三页,确认无误后再补详情页字段。