织梦采集规则编写,批量导入网站内容:织梦采集规则编写
很多站长在用织梦CMS建站时,都希望通过采集规则快速批量导入内容,省去手动发布的麻烦。这篇文章会从零开始,带你走完从编写采集规则到批量导入网站内容的全部流程,包括后台配置、规则调试和常见报错处理。只要照着步骤做,你就能让织梦自动抓取目标站点的文章并入库。
## 准备工作:确认环境与采集权限
在动手写规则之前,先确认你的织梦后台能正常访问,并且服务器允许采集操作。
- 登录织梦后台,路径通常是 `http://你的域名/dede/`。
- 检查 `系统` -> `系统基本参数` -> `性能优化`,把“采集间隔时间”设小一点(例如 1 秒),但不要设为 0,避免被目标站封 IP。
- 确保 PHP 的 `allow_url_fopen` 已开启,否则采集功能可能无法获取远程页面。可以在宝塔面板的 PHP 设置中搜索该项,改为 `On`。
- 准备好目标站点的文章列表页 URL 和内容页 URL 规律,例如列表页 `https://example.com/list-1.html`,内容页 `https://example.com/post/123.html`。
**采集规则的核心是让织梦知道从哪里抓、抓什么、怎么存。** 织梦自带的采集功能已经能覆盖大部分场景,不需要额外安装插件。
## 编写采集规则:节点配置与字段匹配
进入后台 `采集` -> `采集节点管理`,点击“增加采集节点”。这里需要填写几个关键部分。
### 1. 基本设置
- 节点名称:随便填,方便自己识别即可。
- 目标网站编码:如果目标站是 UTF-8,就选 UTF-8;如果是 GBK,选 GBK。选错会导致中文乱码。
- 采集类型:一般选“文章”。
### 2. 列表页规则
在“列表页地址”中填入目标列表页 URL,支持通配符。例如 `https://example.com/list-[1-5].html` 表示抓取第 1 到第 5 页。
接着配置“区域匹配规则”。织梦使用类似正则的匹配方式,但更简单:
- 匹配内容开始:填写列表页中文章链接前面的 HTML 代码,例如 `
` 标签也匹配进去,并开启“远程图片本地化”,织梦会自动下载图片到你的服务器。
**采集间隔设多少合适?**
建议至少 1 秒。如果目标站响应慢,可以设 2-3 秒。设得太快容易被封 IP,反而浪费时间。
**采集的内容能直接发布吗?**
可以,但建议先采集到“待审核”状态,人工检查一遍再发布,避免采集到无关或违规内容。
**为什么采集后文章没有出现在前台?**
检查栏目是否绑定模板,以及是否更新了栏目缓存和 HTML。进入 `生成` -> `更新栏目HTML` 和 `更新文档HTML` 各执行一次。
按照上面的步骤,你应该已经完成了织梦采集规则的编写,并成功批量导入了网站内容。遇到问题时,优先回看避坑指南和字段映射部分,大多数错误都能在那里找到原因。
`
- 匹配内容结束:填写链接后面的代码,例如 `
`
- 链接提取规则:用 `[url]` 表示提取到的链接,例如 ``
如果不确定怎么写,可以右键查看目标列表页源码,找到文章链接附近的标签结构。
### 3. 内容页规则
这是最关键的部分,决定了标题、正文、发布时间等字段能否正确入库。
- 标题规则:开始 ``,结束 `
`,然后在“字段”中选择“标题”。 - 正文规则:开始 ``,结束 `
`,字段选“正文”。
- 发布时间规则:开始 ``,结束 ``,字段选“发布时间”。
**注意:匹配规则必须与目标页面的实际 HTML 结构完全一致,多一个空格都可能导致采集失败。** 建议先用浏览器的“查看页面源代码”功能复制准确的标签。
### 4. 字段映射与入库设置
在“字段映射”区域,把采集到的数据对应到织梦的数据库字段。通常需要映射:
- 标题 -> `title`
- 正文 -> `body`
- 发布时间 -> `pubdate`
- 来源 -> `source`(可选)
如果目标站有分页,可以在“分页规则”中填写分页链接的匹配方式,让织梦自动抓取多页内容。
## 批量导入网站内容:测试与正式采集
规则写好后,不要直接全量采集。先点“测试采集”按钮,查看是否能正确抓取到一条数据。
- 如果测试成功,会显示标题和正文预览。确认无误后,再点击“开始采集”。
- 采集过程中,织梦会显示进度。如果卡住不动,检查“采集间隔时间”是否太短,或者目标站是否限制了访问频率。
- 采集完成后,进入 `内容` -> `普通文章` 查看是否有新文章。如果没有,检查字段映射是否正确,或者采集规则是否匹配到了内容。
**批量导入时建议分批进行,例如每次采集 10-20 篇,避免服务器负载过高或触发目标站的反爬机制。** 可以在“采集节点管理”中设置“每次采集数量”。
## 避坑指南:常见报错与处理
- **中文乱码**:检查目标网站编码与节点编码是否一致。如果目标站是 UTF-8,但织梦数据库是 GBK,需要额外转码。
- **采集到的正文为空**:多半是开始/结束标签写错,或者正文被 JavaScript 动态加载。织梦默认不执行 JS,这种情况需要改用其他采集工具。
- **标题重复**:织梦默认会检查重复标题,如果目标站标题相同,可以在“系统” -> “系统基本参数” -> “性能优化”中关闭“标题重复检测”,但可能导致重复内容。
- **采集后没有生成 HTML**:需要手动更新栏目或生成文档。进入 `生成` -> `更新文档HTML`,选择对应栏目更新。
## 效果验证:检查采集结果
采集完成后,做三件事确认内容正常:
1. 在后台文章列表查看标题、正文、发布时间是否完整。
2. 前台打开一篇文章,检查排版是否错乱,图片是否能显示(如果采集了图片,需要确保“远程图片本地化”已开启)。
3. 如果开启了静态生成,检查 `生成` -> `更新文档HTML` 是否执行成功。
**如果一切正常,你就可以用同样的方法添加更多采集节点,批量导入不同栏目的内容。**
## 常见疑问
**采集规则可以采集图片吗?**
可以。在内容页规则中,把正文里的 `