站群系统采集不到内容怎么办?从源站到插件的排查清单
采集不到内容,先别急着换系统
站群系统采集不到内容怎么办?这问题几乎每个做站群的人都碰过:定时任务跑完了,后台文章数一动不动,或者只进来几篇标题党。先说个我自己的习惯——遇到这种情况我不会马上重装插件,而是先打开目标页面看一眼。十次里有六七次,问题出在源站那边,跟站群系统本身关系不大。

内容采集这条链路其实不长:站群程序发出请求、拿到 HTML、按规则抽取字段、清洗后入库。任何一个环节卡住,后台看到的结果都一样——空白。
第一步:确认目标页还能不能正常打开
源站改版是采集失败的头号原因。上周有个朋友的采集任务连续三天零入库,最后查出来是对方把文章列表页从静态改成了 JS 渲染,采集器拿到的 HTML 里只有骨架,没有正文。
手动验证很快:浏览器打开目标 URL,右键查看源代码,搜索文章标题里的几个字。源码里搜不到,说明内容靠脚本加载,普通采集规则自然抓瞎。这种情况要么换接口源,要么给采集端配上能执行 JS 的环境,成本自己掂量。
还有一种更隐蔽的:页面能开,但状态码是 403 或 503。浏览器有缓存有 UA,采集器没有。用 curl 带默认 UA 请求一次,返回什么心里就有数了。
第二步:过期的采集规则比没有规则更坑
列表页规则和内容页规则是两套东西,很多站群系统的后台把它们放在同一个界面里,改了一个忘了另一个。常见症状是能采到标题、采不到正文,或者正文里混进一堆导航文字。
- 列表页规则验证:在后台点「测试采集」,看能不能列出 10 条以上的文章链接,少于这个数就是选择器写窄了
- 内容页规则验证:随便挑一条链接单独测,正文区如果抓到的是整个 body,说明容器的 class 匹配太宽
- 编码问题:GBK 源站碰上 UTF-8 规则,中文会变成乱码,系统往往直接判定内容为空
采集规则这东西有保质期。源站换个模板、改个 class 名,规则就废了。我的做法是给每个采集源备注最后验证日期,超过一个月没动过的,先测再跑。
第三步:看看是不是被源站拦了
站群采集的请求频率通常不低,源站的防火墙不是摆设。表现很典型:头几十条正常入库,之后全部失败,隔几个小时又恢复一点。这不是系统抽风,是被限速了。
采集插件日志里一般能看到 HTTP 状态码。429、403 频繁出现,基本可以确定。处理办法无非降并发、加请求间隔、换出口 IP。间隔调到 3 到 5 秒,很多小站就能放行。至于代理池,量力而行,别为了采一个日更十篇的站点折腾一整套基础设施。
顺便提一句,有些站群系统自带的采集模块对超时设置很粗暴,默认 3 秒。源站响应慢一点就直接放弃,日志里只写一句「采集失败」,什么都不告诉你。这个参数值得翻出来改改。
第四步:本地环境与插件版本
前面三关都过了还是采不到,问题多半在本地。PHP 的 cURL 扩展没开、allow_url_fopen 被关、服务器 DNS 解析异常,都会让采集请求发不出去。这类故障有个特征:所有采集源同时失效,一条都进不来。
插件版本也别忘了对。站群 CMS 升级后旧版采集插件不兼容的情况我见过不止一次,表现是任务能建、日志也写,但入库那一步静默失败。去插件目录看看有没有更新说明,比在论坛里翻帖子快。
能采到之后,才是真正该操心的事
采集通了不代表站就稳了。同一套规则喂给几十个站,出来的内容高度重复,搜索引擎那边迟早有反应。我个人的做法是采集只占内容盘子的三成左右,剩下的靠人工改写和原创补,采集来的稿子至少过一遍标题重写和段落打散。
另外,采集频率别拉满。日更二十篇的源站,你每半小时抓一次,除了给自己找麻烦没别的好处。把间隔拉长、把规则做细,比堆采集量实在得多。