陈忠岩个人博客-一个生活在这个现实社会的小角色在讲述他的故事!

当前位置:首页 - 代码 - 正文

君子好学,自强不息!

dede防止内容采集教程

2017-12-22 | 代码 | 陈忠岩 | 235°c
A+ A-

eDeCMS自身有防采集混淆字符串的功能,但这种防采集的办法对SEO很不利,你总不想让搜索蜘蛛看到网页中有不少隐藏文本吧,而且这些文本会影响蜘蛛对信息块主题的判断,影响关键词排名,其实,DeDeCMS没有根本性的防采集的方法,道高一尺魔高一丈啊,只要你的信息通过页面的方式发布出来,总能找到采集的方法;综合网上收集的信息,我采纳了两种办法,只能放置最初级的采集:
(1)办法一:复制网页正文内容时自动添加版权信息
JavaScript代码

  <script language="javascript" type="text/javascript">
<!--
document.body.oncopy = function () {
setTimeout( function () {
var text = clipboardData.getData("text");
if (text) {
texttext = text + "\r\n(这里是你的文章版权信息,去掉括号):"+location.href;
clipboardData.setData("text", text);
}
}, 100 )
}
-->
</script>

将以上代码放置在文章页模板中正文结束后面即可。我测试了下该方法,只针对IE浏览器有效,而Firefox、遨游、Google Chrome均无效。
(2)办法二:使页面代码具有唯一性
一般别人采集的时候都是要获取内容开始的代码和结束的代码,而且要唯一性的,所以填的开始代码大多是:<div class="title">。这样,我们在这个class后面加上文章的ID值,改成这样<div class="title" id="{dede:field.id/}">,这里{dede:field.id/}在dedecms中是获取当前文章的ID值,那么生成的每一篇文章的ID值都不一样,这里的开始代码也就都不一样了,这样别人就采集不到了,采一次只能采一篇。
我们制作模板的时候在在body标记附近的<div class="abc">修改成<div class="{dede:field.id/} abc">,注意是空格+{dede:field.id/},这样div的class还是没有变,但产生了<div class="abc 文档ID">,这段代码在每篇文章的内文页均是唯一性的,或者在html标记里插入id={dede:field.id/},比如:<div id={dede:field.id/}>与<body id={dede:field.id/}>,这里{dede:field.id/}在dedecms中是获取当前文章的ID值,这样别人就采集不到了,采一次只能采一篇。当然,别人可以使用过滤规则来去掉,但是假如我在所有的class里插入文档ID,或者插入id=文档ID这样的。那他就只能采集整个页面,然后再过滤,使采集变得更加复杂。
缺点:如果插入{dede:field.id/}不够多的话别人可以用过滤规则过滤掉。但是对于一些站群采集软件来说,这一招足以防止他们采集了!
3、升级DeDeCMS至最新版
DeDeCMS旧版有漏洞,很容易被黑,要么就是嵌入各种广告代码,要么就是被无端增加超级多的隐藏链接,所以,务必要升级到最新版。

         


本文来源:陈忠岩个人博客

本文地址:http://www.chenzhongyan.com/Code/93.html

关注我们:微信搜索“chen_zhongyan”添加我为好友

版权声明:如无特别注明,转载请注明本文地址!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。


你好,朋友
真是美好的一天!
    最新文章 | 随机文章 | 热评文章
  • 陈忠岩个人博客
  • 巴彦生活网
  • 好DJ舞曲网
  • 订阅本站的 RSS 2.0 新闻聚合