织梦采集规则怎么编写

织梦CMS采集规则节点配置

织梦自带的采集模块通过“采集节点”来定义从目标站点抓取哪些内容、如何匹配字段。一份高质量的采集规则决定了入库内容的完整度与清洁度。本文以一套完整的节点配置流程,带你写出稳定可复用的采集规则。

一、采集节点的基本构成

一个采集节点由四部分组成,缺一不可:

二、列表页规则编写

1. 配置列表URL

在“采集 → 采集节点管理 → 新增节点”中填写列表页地址。支持分页通配符 {page}

列表URL:https://example.com/news/list_{page}.html
起始页:1
结束页:10

2. 文章链接匹配

使用织梦的区域匹配语法 {dede:match} 与正则 {dede:listreg} 提取文章链接。先框定列表区域,再正则匹配链接:

{dede:match}...<div class="news-list">[内容]</div>...{/dede:match}
{dede:listreg}<a href="[内容]" target="_blank">{/dede:listreg}
用浏览器查看源码,复制列表区域前后唯一的 HTML 片段作为匹配锚点,避免匹配到无关链接。

三、文章页字段规则

1. 标题字段

{dede:match}<h1 class="title">[内容]</h1>{/dede:match}

2. 正文字段

正文通常在固定容器内,用区域匹配框出:

{dede:match}<div class="article-content">[内容]</div class="end">{/dede:match}

3. 时间与作者

{dede:match}<span class="author">[内容]</span>{/dede:match}
{dede:match}<time>[内容]</time>{/dede:match}

若时间格式不标准,可在“发布时间格式”中填写对应的时间解析格式,如 Y-m-d H:i:s

四、过滤规则编写

1. 去广告与多余标签

在“文章内容过滤规则”中使用正则替换。常见过滤目标:

{dede:trim_replace}<script[^>]*>.*?</script>{/dede:trim_replace}
{dede:trim_replace}<div class="ad">.*?</div>{/dede:trim_replace}
{dede:trim_replace}<iframe[^>]*>.*?</iframe>{/dede:trim_replace}

2. 替换关键词

将目标站的特定文字替换为自己的,例如版权声明:

{dede:replace}原站名|我的站点{/dede:replace}

五、采集测试与调试

  1. 保存节点后点击“采集内容 → 测试采集”。
  2. 系统会显示列表页抓取到的链接数与首篇文章字段预览。
  3. 若某字段为空,回到节点编辑调整匹配锚点,确保前后锚点在源码中唯一。
  4. 测试通过后再执行批量采集。
采集前确认目标站点允许被采集,遵守其 robots 协议与版权声明,避免侵权风险。

六、高级技巧

复杂页面可用“可视匹配”辅助:织梦部分版本提供点击页面元素自动生成匹配规则的功能,降低正则门槛。

采集规则的长期维护

目标站点改版是采集规则失效的最大原因。建议为每个节点维护一份“最近一次成功采集时间”记录,定期巡检,发现成功率骤降立即更新匹配锚点。同时把字段匹配做成可配置模板,遇到同类站点可快速套用,让采集规则从一次性脚本沉淀为可复用的内容资产,支撑站点持续稳定的内容供给。