知识沉淀 · 项目:crawler · 源:hermes
给抓取系统新增政务站点(各省市局/财政部门户)的标准打法。核心原则:先探测真实结构再写选择器,选择器必须在生产代码路径双端验证;探测结论(可用结构/死路)要落档复用。
批量探测
- 可达+特征初筛:
$_ts/MMB1_/随机名外链 JS + 412/202 = 瑞数动态安全,静态无解直接归死路,换 UA/Referer/协议全无效,别消耗重试轮次;recordset= hanweb CMS 走专门解法; - title 鉴伪:多域名返回相同 size/相同栏目编号 = 泛域名占位页假阳性,逐域抓
<title>验归属;域名拼写陷阱:山西 shanxi vs 陕西 shaanxi,先查上级官网导航拿权威子域清单; - IPv6 分诊:
getent hosts有 AAAA 记录但 curl 000 → 本机无 v6 出口,归「网络不可达」不是站点挂了; - dump 带日期的完整
<li>/<tr>原始 DOM 样本定选择器;表格栏目先数列序(标题/文号/日期列序最易错位)。
解析与治理
- hanweb 输出必须先剥
</?record>、<![CDATA[、]]>再交 bs4/lxml——lxml 会把 CDATA 当 bogus comment 整段吞掉(不剥=解析出 0 节点,最易踩); - 跨站标题去重:地方站大量转载上级文件(实测重合可达 76%,某站 15/15 全转载),入库前必须比对全库归一化标题;去重命中数进日志——入库 0 条+去重命中 N 条是预期行为不是故障;
- 批量循环每目标独立临时文件 + 写前 rm -f + 读前判存在:复用固定文件名会让前轮残留伪装本轮结果(curl 失败读到旧站数据=假结论)。
评论