船说 CMS 采集怎么配置
照着这篇做完,你就能在船说 CMS 后台跑通一条完整的采集链路:从建节点、写规则,到测试入库、定时采集,全程不用改代码。
第一步:确认环境支持,找到后台入口
这一步要确认服务器能对外发请求,否则规则写得再对也采不到东西。默认后台入口是 你的域名/admin.php,登录后进入 系统 → 系统信息,检查两件事:PHP 版本建议 7.4 或 8.0 以上;扩展列表里要有 curl。如果没有 curl,去 系统 → 配置管理 → 基本设置 里确认 allow_url_fopen 是否开启,或者让运维在 php.ini 里打开 extension=curl。
注意:部分虚拟主机默认禁用
allow_url_fopen,采集时会提示「无法获取目标页」,先查这里再查规则。
第二步:新建采集节点
这一步要创建一个「采集任务容器」,所有规则都挂在它下面。进入后台左侧菜单 采集管理 → 采集节点,点右上角 添加节点。需要填的字段:
- 节点名称:随便起,比如「某某文章站」
- 目标站编码:选
UTF-8或GBK,选错会全站乱码 - 采集类型:选
列表页 + 内容页
保存后节点会出现在列表里,此时还是空的,接下来填规则。
第三步:配置列表页规则
这一步要告诉系统「去哪一页、抓哪些链接」。点节点右侧的 编辑,切到 列表页设置 标签页:
- 列表页地址:支持翻页占位符,写成
https://www.example.com/news/list_[页码].html - 翻页范围:填
1到10,表示采前 10 页 - 区域截取:在「开始字符串」填列表容器的起始标签,如
<ul class="news-list">,「结束字符串」填</ul> - 链接规则:正则模式填
<a href="(.*?)",或者用字符串模式填<a href="和"前后截取
填完点 测试列表,能看到抓回来的链接列表就说明列表页通了。
注意:占位符必须是英文方括号
[页码],中文的【页码】不生效;如果目标站第一页是index.html、后面才是list_2.html,把起始页设为1后单独在规则里做替换。
第四步:配置内容页规则
这一步要提取标题、正文、时间、图片这些字段。切到 内容页设置 标签页,每个字段都用「开始字符串 / 结束字符串」或正则来定位。用浏览器 F12 找到目标元素,把包裹它的唯一标签复制进去,例如标题填 <h1 class="title"> 和 </h1>。
关键几项:
- 正文:填正文容器的开闭标签;下方 过滤 HTML 标签 一般不要全勾,保留
p、img、br即可 - 发布时间:若目标站写的是「2024-05-01」,字符串模式填
<span class="time">和</span>;时间格式选Y-m-d - 缩略图:勾选 下载远程图片,图片保存目录填
/uploads/collect/,并在「图片域名前缀」里补上相对路径域名
第五步:设置入库参数
这一步决定采回来的内容长什么样。切到 入库设置:
- 目标栏目:下拉选你建好的栏目
- 审核状态:建议先选
待审核,确认质量后再改已审核 - 发布时间:可勾选「随机间隔」,填
30到120秒 - 重复数据处理:选
跳过或更新 - 内容替换:可加关键词替换规则,比如去掉来源站的版权声明
第六步:测试并正式采集
这一步是整个流程的验收环节。回到 采集管理 → 采集节点,点节点右侧的 测试采集,系统会抓前 3 条并展示预览。标题、正文、图片都正常后,点 开始采集,填本次采集条数,比如 50 条。
进度在 采集管理 → 采集日志 里看,遇到失败会写明原因,多数是规则没匹配上或目标页超时。
注意:采集速度别拉满,把「采集间隔」设成 1–3 秒,否则容易被目标站封 IP。
第七步:配置定时采集
这一步让采集自动跑。如果是宝塔面板,进入 计划任务 → 添加任务,类型选「访问 URL」,URL 填后台提供的采集触发地址(在采集节点列表页通常有「定时采集地址」可复制),执行周期设成每天凌晨 3 点。服务器层面也可以用 crontab 加一条 curl 命令实现同样效果。
小结
- 采集能不能跑通,第一步先看
curl扩展和allow_url_fopen - 节点里的「目标站编码」选错,全站乱码
- 列表页规则靠「区域截取 + 链接正则」,内容页规则靠每个字段的「开始/结束字符串」
- 入库时把审核状态设成「待审核」,别让垃圾内容直接上线
- 采集间隔设 1–3 秒,自动采集交给计划任务
原文链接:https://www.gj0.com/thread-123.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。