dede如何防止网站被采集

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

防止采集需要一个组合策略,而不是依赖单一的方法,从简单到复杂,我将为你提供一个多层次、全方位的防护方案。

dede如何防止网站被采集
(图片来源网络,侵删)

第一层:基础与常规防护(易实施,效果显著)

这些是首先要做的,门槛低,但能有效挡住大部分低级采集器。

版权声明与robots.txt

  • 版权声明:在网站页脚、文章页末尾等显眼位置,用明确的文字声明版权,并警告禁止未经授权的采集,这虽然不能阻止技术采集,但可以起到法律威慑作用,并为日后维权提供证据。
  • robots.txt:这是一个位于网站根目录的纯文本文件,用于告诉搜索引擎哪些页面可以抓取,哪些不可以。
    • 重要提示robots.txt 对搜索引擎是“建议”,对恶意采集器基本无效,但可以规范正规爬虫的行为,防止它们抓取你不想被公开的内容(如后台、会员中心等)。
    • 示例
      User-agent: *
      Disallow: /dede/          # 禁止访问后台目录
      Disallow: /member/        # 禁止访问会员中心
      Disallow: /plus/          # 禁止访问一些动态程序目录
      Disallow: /data/          # 禁止访问数据目录
      Disallow: /special/       # 禁止访问专题页面(如果不想被收录)
      Allow: /                  # 允许抓取根目录下的公开内容

关键词密度与内容原创性

这是最根本、最有效的方法,采集器只能抓取已有的内容,无法创造新的。

  • 提高原创度:确保你的网站内容是高度原创的,即使主题相同,也要用自己的语言、结构和观点重新组织。
  • 控制关键词密度:避免文章中出现关键词的堆砌,原创文章的自然关键词密度通常在2%-8%之间,这样既有利于SEO,也让采集器难以通过简单的关键词匹配来抓取。
  • 内容差异化:在文章中加入表格、图片、流程图、代码块、个人观点等非纯文本内容,这些内容结构复杂,采集器抓取后排版会乱七八糟,大大降低了采集的价值。

隐藏或混淆核心内容

  • 图片防盗链:防止别人直接盗用你网站的图片,消耗你的服务器带宽。
    • 方法:在服务器上配置 .htaccess (Apache) 或 nginx.conf (Nginx) 来设置 Referer 验证。
    • Apache .htaccess 示例
      RewriteEngine on
      RewriteCond %{HTTP_REFERER} !^$ [NC]
      RewriteCond %{HTTP_REFERER} !yourdomain.com [NC]
      RewriteCond %{HTTP_REFERER} !google.com [NC]
      RewriteCond %{HTTP_REFERER} !baidu.com [NC]
      RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ http://yourdomain.com/404.jpg [R,NC,L]

      这段代码的意思是:如果引用图片的来源(Referer)不是你的域名、谷歌或百度,那么就显示一个 jpg 图片。

  • 内容部分加载:使用 JavaScript 动态加载文章的部分内容(如“点击加载全文”、“查看更多评论”),采集器默认不执行JS,只能抓取到部分内容。
  • 添加随机水印:为文章内容中的图片添加包含网站URL的随机水印,增加盗用的成本。

第二层:技术进阶防护(需要一定技术能力)

这些方法通过修改 DedeCMS 源码或使用插件来实现,能有效对抗更高级的采集器。

dede如何防止网站被采集
(图片来源网络,侵删)

修改文章内容发布形式(核心技巧)

这是针对 DedeCMS 最有效的防采集方法之一,采集器通常通过固定的 article.php?id=123 这样的URL来抓取。

  • 方法:将文章的URL从动态的 article.php?id=XXX 改为静态的 /archives/xxx/xxx.html 格式,并在HTML内容中不显示文章ID
  • 如何操作
    1. 开启伪静态:在 DedeCMS 后台 -> 系统 -> 系统基本参数 -> 核心设置 -> 是否使用伪静态,选择“是”。
    2. 修改文章模板:打开 templets/default/article_article.htm 文件。
    3. 隐藏文章ID:找到文章标题的链接标签,通常是:
      <a href='[field:arcurl/]'>[field:title/]</a>

      这个标签生成的URL是静态的,如 /archives/123/456.html,采集器可以通过分析URL规律批量抓取。

    4. 增加随机字符串:我们可以修改 article_article.htm,在 arcurl 中加入一个随机或固定的标识,修改为:
      <a href='/article/[field:id/]/[field:sortid/].html'>[field:title/]</a>

      你需要修改 include/helpers/channelunit.helper.php 文件,找到 GetArcUrl 函数,让它生成新的URL规则,生成 /article/123/456.html,这样,URL结构变得不那么通用,增加了采集器的识别难度。

添加动态加载和混淆

  • 使用JS加载正文:在 article_article.htm 中,将文章正文内容([field:body/])用一个 <div> 包起来,并设置 id="article-content",在页面底部用JavaScript动态读取这个div的内容并插入到页面中。
    <!-- article_article.htm -->
    <div id="article-content-placeholder">正在加载内容...</div>
    <script>
      fetch('/api/get_article_content.php?id=[field:id/]')
        .then(response => response.text())
        .then(html => {
          document.getElementById('article-content-placeholder').innerHTML = html;
        });
    </script>

    这需要你创建一个API接口(get_article_content.php)来返回文章内容,采集器因不执行JS而无法获取正文。

    dede如何防止网站被采集
    (图片来源网络,侵删)
  • HTML/CSS 混淆:使用CSS将一些文字颜色设置为与背景色相同,或者将文字打散成多个<span>标签,并用CSS定位,这会影响SEO,慎用。

登录才能查看全文

  • 方法:设置只有登录用户才能查看文章的完整内容。
  • 如何操作
    1. 在 DedeCMS 后台 -> 系统 -> 系统基本参数 -> 内容选项 -> “游客是否浏览未审核文档”和“游客是否浏览会员专属文档”设置为“否”。
    2. 在发布文章时,选择“仅会员可见”或类似的属性。
    • 缺点:这会严重影响SEO,因为搜索引擎蜘蛛也无法抓取全文,不推荐对普通文章使用。

第三层:高级与主动防御(综合解决方案)

这是最全面的方案,结合了多种技术,能主动发现和阻止采集行为。

部署WAF(Web应用防火墙)

WAF是抵御网络攻击(包括采集)的利器,它可以分析HTTP请求,并根据规则识别并拦截恶意行为。

  • 云WAF服务:如阿里云、腾讯云、Cloudflare 等都提供WAF服务,它们有现成的防爬虫规则,可以轻松识别高频请求、异常请求路径等。
  • 自建WAF:如果你有技术能力,可以自己基于 Nginx + Lua (OpenResty) 或 ModSecurity 搭建WAF,编写自定义的防采集规则。

限制IP请求频率

这是WAF的核心功能之一,也可以在服务器层面实现。

  • Nginx 示例

    # 限制每个IP每分钟最多请求30次
    limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
    server {
        ...
        location / {
            limit_req zone=one burst=5 nodelay;
            ...
        }
    }

    这个规则可以有效防止一个IP在短时间内大量抓取你的页面。

定期更换模板和结构

采集器通常是针对特定模板编写的,如果你定期更换网站的模板(尤其是文章列表页和内容页的HTML结构),采集器抓取到的内容就会因为无法正确解析而失效。

监控与反制

  • 日志监控:定期分析服务器日志(Nginx/Apache的access.log),查找异常的访问模式,比如短时间内大量请求特定目录或特定ID的文章。
  • 反向查询:将你的文章标题用引号在搜索引擎中搜索,看看是否有未经授权的转载。
  • 法律手段:对于大规模、恶意的商业采集,保存证据后,可以发送律师函或提起诉讼。

总结与推荐方案

对于 DedeCMS 用户,我推荐的组合拳方案如下:

  1. 基础必做

    • 设置好 robots.txt,屏蔽后台和敏感目录。
    • 坚持原创内容,这是所有技术防护的基石。
    • 开启伪静态,并将文章URL结构进行微调(如修改 channelunit.helper.php),使其不那么通用。
  2. 进阶推荐

    • 部署云WAF(如阿里云WAF或Cloudflare),这是性价比最高的主动防御方案,能自动处理大部分恶意请求。
    • 为图片添加防盗链,防止资源被直接盗用。
  3. 可选操作

    • 如果你的网站内容价值极高,可以考虑使用JS动态加载文章正文,但要注意对SEO的影响。
    • 定期更换模板,增加采集器的识别成本。

通过以上多层次的防护,你的 DedeCMS 网站将能抵御绝大多数的采集行为,保护你的原创内容。

-- 展开阅读全文 --
头像
织梦cms调用栏目图片
« 上一篇 02-09
C语言合法整型常数有哪些?
下一篇 » 02-09

相关文章

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

目录[+]