dede采集规则如何设置内容过滤?

99ANYc3cd6
预计阅读时长 23 分钟
位置: 首页 DEDE建站 正文

核心概念:采集的“三要素”

在配置任何采集规则之前,你必须先理解这三个核心要素,它们是所有采集规则的基石:

dede采集内容规则
(图片来源网络,侵删)
  1. 目标网址:你要从哪个网站采集内容?这通常是一个包含多个列表页的网址,https://www.example.com/news/list-1.html
  2. 列表页规则:如何从“目标网址”中找到所有文章的链接地址?列表页就是存放许多文章标题和链接的页面,你需要告诉 DedeCMS 如何在这个页面上“抓取”到每一篇文章的 URL。
  3. 内容页规则:如何从上一步抓取到的“文章链接”中,提取出文章的标题、作者、来源、正文、图片等信息?内容页就是单篇文章的页面。

流程图: 目标网址 -> 列表页规则 -> 抓取到 N 个文章链接 -> 对每个链接应用内容页规则 -> 提取出文章详情 -> 保存到你的网站


采集规则的详细配置步骤

我们以 DedeCMS 后台的 采集 -> 采集管理 -> 增加新采集 为路径,一步步讲解。

第 1 步:基本配置

首先填写采集任务的名称、目标网址等基本信息。

  • 任务名称:给你的采集任务起个名字,方便日后管理,如“XX科技新闻采集”。
  • 目标网址:填写你要采集的网站的根目录 URL,https://www.example.com/
  • 列表页 URL:填写包含文章列表的具体页面 URL,这里可以用通配符 来代表页码, https://www.example.com/news/list-*.html 会被替换成 1, 2, 3... 等数字,DedeCMS 会自动抓取这些页面。
  • 起始 URL:通常和列表页 URL 一样,或者直接填写第一页的 URL。
  • 采集栏目:选择采集到的文章要存放到你网站的哪个栏目下。请务必选择一个与采集内容类型相符的栏目。
  • 作者设置
    • 来源网址:将采集的网站地址作为文章来源。
    • 固定来源:手动输入一个固定的来源名称,如“XX新闻网”。
    • 抓取来源页的特定位置抓取来源信息(需要配置内容页规则)。
  • 发布时间
    • 当前时间:使用采集时的服务器时间。
    • 抓取发布时间页的特定位置抓取发布时间(需要配置内容页规则)。
  • 是否下载远程图片强烈建议开启,开启后,文章中的图片会被下载到你网站的 uploads 目录下,并替换为本地路径,防止对方网站图片失效或丢失。
  • 是否启用远程附件:如果文章包含附件(如 PDF, ZIP),可以开启并下载到本地。

第 2 步:配置列表页规则

这是最关键的一步,目的是从列表页中提取出所有文章的链接。

dede采集内容规则
(图片来源网络,侵删)
  1. 点击“选择列表页”,在弹出的窗口中填写列表页的 URL(就是你上面填写的 https://www.example.com/news/list-*.html),然后点击“浏览”。
  2. 分析列表页结构
    • 打开列表页的源代码(浏览器右键 -> “查看网页源代码”)。
    • 找到包裹每篇文章链接的 HTML 标签,每篇文章都在一个 <li> 标签里,链接是 <a>
  3. 配置列表规则
    • 列表起始标记:输入包裹所有文章列表的起始 HTML 标签,如果所有文章都在 <div class="news_list"></div> 之间,这里就填 <div class="news_list">
    • 列表结束标记:输入包裹所有文章列表的结束 HTML 标签。</div>
    • 文章链接起始标记:输入包裹单个文章链接的起始 HTML 标签,如果每个文章链接都在 <li class="item"> 里,这里就填 <li class="item">
    • 文章链接结束标记:输入包裹单个文章链接的结束 HTML 标签。</li>
    • 文章链接标签:输入包含文章链接的那个 HTML 标签名,通常是 a
    • 文章链接属性:输入文章链接所在的属性,通常是 href

示例: 假设列表页 HTML 结构如下:

<ul class="article-list">
    <li>
        <a href="/news/123.html">文章标题 1</a>
        <span>2025-10-27</span>
    </li>
    <li>
        <a href="/news/124.html">文章标题 2</a>
        <span>2025-10-26</span>
    </li>
</ul>

那么你的列表规则应该配置为:

  • 列表起始标记: <ul class="article-list">
  • 列表结束标记: </ul>
  • 文章链接起始标记: <li>
  • 文章链接结束标记: </li>
  • 文章链接标签: a
  • 文章链接属性: href

配置好后,点击“测试”,如果能正确抓取到 /news/123.html/news/124.html 等链接,说明列表页规则配置成功。

第 3 步:配置内容页规则

当列表页规则成功后,你需要告诉 DedeCMS 如何从抓取到的每一个文章链接(如 /news/123.html)中提取具体内容。

dede采集内容规则
(图片来源网络,侵删)
  1. 点击“选择内容页”,在弹出的窗口中填写一个典型的文章链接(https://www.example.com/news/123.html),然后点击“浏览”。
  2. 页结构
    • 打开这个文章页面的源代码。
    • 、作者、正文、图片等各自所在的 HTML 标签。
  3. 字段规则:页规则设置区域,你需要为每个要采集的字段(标题、内容等)分别配置规则。
  • 采集字段列表:你可以在这里添加、删除、排序要采集的字段,默认有标题、内容等。

如何为每个字段配置规则(以“标题”为例):

  • 字段名:选择你要配置的字段,如 title

  • 内容选择

    • 使用固定内容:如果这个字段是固定的,比如所有文章的来源都是“XX网”,就在这里填写。
    • 抓取网页内容:如果这个字段需要从网页上提取,就选择此项,然后填写下面的规则。
  • 内容起始标记:输入包含标题内容的起始 HTML 标签。<h1 class="article-title">

  • 内容结束标记:输入包含标题内容的结束 HTML 标签。</h1>

  • 内容过滤非常重要! 这里可以写一些正则表达式来清理不需要的内容。

    • /<[^>]+>/:这个正则表达式可以移除所有 HTML 标签,只保留纯文本,对于标题通常不需要,但对于描述等字段很有用。
    • /责任编辑:(.*)/:可以移除末尾的“责任编辑:XXX”这类文字。 字段的特殊处理:**
  • 内容起始/结束标记:找到包含文章正文的 <div><p> 标签,<div class="article-content"></div>

  • 内容过滤:这里最常用正则表达式来清理广告、版权信息、无关链接等。

    • /<!--.*?-->/s:移除 HTML 注释。
    • /<script.*?>.*?<\/script>/is:移除 <script> 标签及其内容。
    • /<!--广告开始-->.*?<!--广告结束-->/is:移除特定标记的广告。
    • /责任编辑:.*?/:移除责任编辑信息。
  • 正文图片处理

    • 启用远程图片本地化:确保在第一步基本配置中开启了此选项。
    • 图片本地化起始/结束标记:如果图片只在正文某一部分,可以在这里限定范围,如果整页都是正文,可以留空。
    • 包含图片的标签:通常是 img
    • 图片地址属性:通常是 src
    • 图片替代文本属性:通常是 alt

其他字段

  • 作者来源发布时间:方法类似,找到它们在页面中的 HTML 位置,填写起始和结束标记即可。

第 4 步:高级选项与测试

  • 分页采集:如果文章内容有多页,可以在这里设置分页规则,下一页 按钮的链接规则。
  • 过滤规则:可以设置一些关键词,如果文章标题或内容包含这些词,则不采集。
  • 发布时间格式:如果抓取的是文本,需要告诉 DedeCMS 这个文本的日期格式,%Y-%m-%d %H:%M:%S

最后一步:测试

  • 测试列表页:在列表页规则配置好后,点击“测试”,检查是否能正确抓取到文章链接。
  • 页规则配置好后,点击“测试”,检查是否能正确抓取到标题、正文等内容,并观察图片是否被正确替换。

完整实例演示

假设我们要采集一个网站的文章,其页面结构如下:

列表页 (list.html):

<div class="post-list">
    <article class="item">
        <h2><a href="/read/101.html">DedeCMS 采集教程详解</a></h2>
    </article>
    <article class="item">
        <h2><a href="/read/102.html">PHP 开发最佳实践</a></h2>
    </article>
</div>

页 (/read/101.html):**

<!DOCTYPE html>
<html>
<head>DedeCMS 采集教程详解 - XX技术博客</title>
</head>
<body>
    <h1 class="main-title">DedeCMS 采集教程详解</h1>
    <div class="info">作者:张三 | 来源:XX技术博客 | 发布时间:2025-10-27 10:00:00</div>
    <div class="content">
        <p>这是文章的第一段内容。</p>
        <img src="https://www.example.com/images/pic1.jpg" alt="示例图片">
        <p>这是文章的第二段内容。</p>
    </div>
    <div class="footer">版权所有 © 2025</div>
</body>
</html>

配置过程:

  1. 基本配置

    • 任务名称:XX技术博客采集
    • 目标网址:https://www.example.com/
    • 列表页 URL:https://www.example.com/list.html
    • 采集栏目:选择一个“技术文章”栏目
    • 开启“下载远程图片”
  2. 列表页规则

    • 列表起始标记:<div class="post-list">
    • 列表结束标记:</div>
    • 文章链接起始标记:<article class="item">
    • 文章链接结束标记:</article>
    • 文章链接标签:a
    • 文章链接属性:href
    • 测试:应能抓取到 /read/101.html/read/102.html
  3. 内容页规则

      • 字段名:title
      • 内容起始标记:<h1 class="main-title">
      • 内容结束标记:</h1>
      • 字段名:body
      • 内容起始标记:<div class="content">
      • 内容结束标记:</div>
      • 内容过滤:/<div class="footer">.*?<\/div>/is (移除页脚版权信息)
    • 作者
      • 字段名:writer
      • 内容起始标记:作者:
      • 内容结束标记:
    • 来源
      • 字段名:source
      • 内容起始标记:来源:
      • 内容结束标记:
    • 发布时间
      • 字段名:pubdate
      • 内容起始标记:发布时间:
      • 内容结束标记:<
      • 日期格式:%Y-%m-%d %H:%M:%S
  4. 最终测试与采集

    • 保存所有规则。
    • 回到采集任务列表,找到该任务,点击“开始采集”。
    • 观察采集日志,看是否成功。

重要注意事项与技巧

  1. 尊重版权:采集他人内容时,务必遵守相关法律法规和网站的使用条款,建议注明来源和作者。
  2. 反爬虫机制:很多网站有反爬虫措施,可能会封禁你的 IP,可以设置采集间隔(如每次采集后等待几秒),或使用代理 IP。
  3. 网站结构变化:目标网站一旦改版,HTML 结构改变,你的采集规则就会失效,需要定期检查和更新规则。
  4. 正则表达式是关键:熟练掌握正则表达式能让你更精准地过滤和提取内容,是高级采集的必备技能。
  5. 从简单开始:如果采集失败,先从一个最简单的字段(如标题)开始测试,确保它能抓取到,再逐步添加和测试其他字段。
  6. DedeCMS 版本:不同版本的 DedeCMS 可能在界面上略有差异,但核心逻辑和规则配置方法基本一致。

希望这份详细的指南能帮助你掌握 DedeCMS 的采集功能!

-- 展开阅读全文 --
头像
dede批量建站工具,高效还是隐患?
« 上一篇 04-23
dede国外分享插件如何实现跨国社交平台分享?
下一篇 » 04-23

相关文章

取消
微信二维码
支付宝二维码