本指南适配PHPCMS V9 6.0及以上正式版本,运行环境为PHP5.3~7.2、MySQL5.5~8.0,其他衍生版本可参考核心逻辑调整排查方向。
安全提示:所有采集操作需遵守《中华人民共和国网络安全法》及目标站点robots协议约定,禁止采集受版权保护的非公开内容,避免承担相关法律责任。
正式排查前需完成三项基础验证:确认当前登录账号为超级管理员,拥有采集节点编辑、采集执行的全权限;确认采集节点规则已保存并启用,绑定的栏目ID、内容模型均为正常状态;确认服务器可正常访问公网,未被防火墙限制出站请求。
打开浏览器开发者工具(F12)切换至「网络」面板,点击手动采集按钮后,查看是否生成指向`/index.php?m=collection&c=collection&a=public_collect`的POST请求。确认请求参数中的nodeid、siteid与配置的采集节点ID、站点ID完全一致,无缺失、错位情况。
若开发者工具控制台出现JS报错,如`$ is not defined`,则为后台采集模板的jQuery资源加载失败,需检查`/admin/templates/default/collection/collect.tpl.php`文件中jQuery引用路径是否正确,是否被站点安全插件拦截请求。
URL规则校验:确认列表页分页占位符`{page}`格式正确,内容页URL匹配规则与目标站点结构完全契合,如目标站点内容页路径为`/article/123.html`,匹配规则需填写`/article/{id}.html`,不可出现多余字符。

字段匹配规则校验:打开目标站点内容页右键查看源代码,确认配置的字段起始标签、结束标签组合在源码中唯一存在,避免匹配到冗余内容或空值。若配置了内容过滤规则,需逐一核对过滤项,确认未将有效内容纳入过滤范围。
登录服务器执行curl命令测试目标页面可访问性: ``` curl -I 目标内容页完整URL ``` 若返回HTTP状态码为403、429、503,说明服务器IP已被目标站点反爬策略拦截。可在采集节点高级配置中修改默认User-Agent、设置2~5秒的采集间隔,或配置代理IP池降低拦截概率。若目标站点需要登录后访问,可将浏览器中获取的有效Cookie填入采集节点的Cookie配置项。
确认采集字段与绑定的内容模型字段类型、长度完全匹配,如采集的长文本内容对应模型字段需为text类型,若使用varchar(255)类型会因内容过长触发截断或入库失败。核对内容模型必填字段(如title、catid)是否全部配置了采集规则,必填字段为空时内容无法正常入库。
检查站点`/caches/`、`/html/`目录权限为755,所有者与Web服务运行用户(如www、apache)一致,目录权限不足会导致采集临时数据无法写入缓存直接丢失。可在`/configs/system.php`中将debug参数设置为1开启调试模式,再次执行采集时可查看具体SQL报错信息,针对性修复字段缺失、主键冲突等问题。
PHPCMS默认采集器仅抓取页面静态源码,若目标站点内容为JS动态渲染,会出现规则正确但无数据的情况。可在采集节点高级配置中开启JS渲染支持,或对接第三方动态页面解析API,该方案的采集成功率可提升至92%以上。
若目标站点编码为GBK、PHPCMS站点编码为UTF-8,未配置转码时采集的内容会出现乱码,被系统判定为无效内容丢弃。可在采集节点高级配置中设置源编码为GBK、目标编码为UTF-8,开启自动转码功能即可解决。
排查完成后先执行单条内容测试:将明确可访问的目标内容页URL填入采集测试框,点击测试按钮,若所有字段返回内容正确,再执行小批量采集测试。单次测试选择10条内容进行采集,确认全部正常入库后,再启动全量采集任务,避免浪费服务器资源。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图