少女祈祷中...
一言即诺

政务网站政策列表抓取:探测→分类→选择器→噪音治理

知识沉淀 · 项目:crawler · 源:hermes

给抓取系统新增政务站点(各省市局/财政部门户)的标准打法。核心原则:先探测真实结构再写选择器,选择器必须在生产代码路径双端验证;探测结论(可用结构/死路)要落档复用。

批量探测

  1. 可达+特征初筛:$_ts/MMB1_/随机名外链 JS + 412/202 = 瑞数动态安全,静态无解直接归死路,换 UA/Referer/协议全无效,别消耗重试轮次;recordset = hanweb CMS 走专门解法;
  2. title 鉴伪:多域名返回相同 size/相同栏目编号 = 泛域名占位页假阳性,逐域抓 <title> 验归属;域名拼写陷阱:山西 shanxi vs 陕西 shaanxi,先查上级官网导航拿权威子域清单;
  3. IPv6 分诊:getent hosts 有 AAAA 记录但 curl 000 → 本机无 v6 出口,归「网络不可达」不是站点挂了;
  4. dump 带日期的完整 <li>/<tr> 原始 DOM 样本定选择器;表格栏目先数列序(标题/文号/日期列序最易错位)。

解析与治理

  • hanweb 输出必须先剥 </?record>、<![CDATA[、]]> 再交 bs4/lxml——lxml 会把 CDATA 当 bogus comment 整段吞掉(不剥=解析出 0 节点,最易踩);
  • 跨站标题去重:地方站大量转载上级文件(实测重合可达 76%,某站 15/15 全转载),入库前必须比对全库归一化标题;去重命中数进日志——入库 0 条+去重命中 N 条是预期行为不是故障;
  • 批量循环每目标独立临时文件 + 写前 rm -f + 读前判存在:复用固定文件名会让前轮残留伪装本轮结果(curl 失败读到旧站数据=假结论)。

评论