DeDeCMS自身有防采集混淆字符串的功能,但这种防采集的办法对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旧版有漏洞,很容易被黑,要么就是嵌入各种广告代码,要么就是被无端增加超级多的隐藏链接,所以,务必要升级到最新版。
版权声明: 本站资源均来自互联网或会员发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!
转载请注明: 分享下关于dede防止内容采集教程