当前位置:首页 > 编程资讯 >

网站防采集方法大全

发布时间:2015-11-21 11:08:32 作者:佚名 阅读:(925)

  影响扩大以后,网站一直为一些垃圾网站的采集所苦恼。据不完全统计,有几十个网站采集我网站内容,有时我一个月的心血,编辑更新的内容,采集者一分钟就不到就解决问题,据为已有,有时采集量大时还会造成服务器奇慢,影响用户访问,实在令人气愤!
如何防止网站被采集?
目前防采集的方法有很多种,先介绍一下常见防采集策略方法和它的弊端及采集对策:
一、只允许用户登陆后才可以浏览
弊端:此方法会严重影响搜索引擎蜘蛛对其收录
采集对策:目前落伍已经有人发了对策文章 ,具体对策就看这个吧《ASP小偷程序如何利用XMLHTTP实现表单的提交以及cookies或session的发送》。
建议:目前没有好的改良建议。
评论:建议指望搜索引擎带流量的站长不要使用此方法。不过此方法防一般的采集程序,还是有点效果的。
二、用javascript加密内容页面
弊端:此方法适用于静态页面,但会严重影响搜索引擎对其收录情况,搜索引擎收到到的内容,也都是加密后的内容。
采集对策:建议不采,如非要采,就把解密码的JS脚本也采下来。
建议:目前没有好的改良建议。
评论:建议指望搜索引擎带流量的站长不要使用此方法。
三、判断一个IP在一定时间内对本站页面的访问次数,如果明显超过了正常人浏览速度,就拒绝此IP访问。
防采集程序
<%
Dim AppealNum,AppealCount
AppealNum=10 '同一IP60秒内请求限制10次
AppealCount=Request.Cookies("AppealCount")
If AppealCount="" Then
response.Cookies("AppealCount")=1
AppealCount=1
response.cookies("AppealCount").expires=dateadd("s",60,now())
Else
response.Cookies("AppealCount")=AppealCount+1
response.cookies("AppealCount").expires=dateadd("s",60,now())
End If
if int(AppealCount)>int(AppealNum) then
response.write "吾爱IT编程提醒您:歇一会儿吧!整天采集你烦不烦啊!"
response.end
End If
%>
弊端:
1、此方法只适用于动态页面,如:asp\\jsp\\php等...静态页面无法判断某个IP一定时间访问本站页面的次数。
2、此方法会严重影响搜索引擎蜘蛛对其收录,因为搜索引擎蜘蛛收录时,浏览速度都会比较快而且是多线程。此方法也会拒绝搜索引擎蜘蛛收录站内文件。
采集对策:只能放慢采集速度,或者不采。
建议:做个搜索引擎蜘蛛的IP库,只允许搜索引擎蜘蛛快速浏览站内内容。搜索引擎蜘蛛的IP库的收集,也不太容易,一个搜索引擎蜘蛛,也不一定只有一个固定的IP地址。
评论:此方法对防采集比较有效,但却会影响搜索引擎对其收录。
四、只允许通过本站页面连接查看,如:Request.ServerVariables(“HTTP_REFERER“)
弊端:影响搜索引擎对其收录。
采集对策:不知道能不能模拟网页来源。。。。目前我没有对应此方法的采集对策。
建议:目前没有好的改良建议。
评论:建议指望搜索引擎带流量的站长不要使用此方法。不过此方法防一般的采集程序,还是有点效果的。
五、用javascript、vbscript脚本做分页
弊端:影响搜索引擎对其收录。
采集对策:分析javascript、vbscript脚本,找出其分页规则,自己做个对应此站的分页集合页即可。
建议:目前没有好的改良建议。
评论:感觉懂点脚本语言的人都能找出其分页规则。
六、把内容页面里的特定标记替换为”特定标记+隐藏版权文字“
弊端:此方法弊端不大,仅仅会增加一点点的页面文件大小,但容易反采集。
采集对策:把采集来的含有隐藏版权文字内容的版权文字替掉,或替换成自己的版权。
建议:目前没有好的改良建议。
评论:自己感觉实用价值不大,就算是加上随机的隐藏文字,也等于画蛇添足。
从以上可以看出,目前常用的防采集方法,要么会对搜索引擎收录有较大影响,要么防采集效果不好,起不到防采集的效果。为了防止采集,我试过各种方法,绝大多数方法是“双刃剑”---防止了采集,也影响了搜索引擎收录,实在不爽!
那么,还有没有一种有效防采集,而又不影响搜索引擎收录的方法呢?那就请继续往下看吧!

 

  有效防止采集的方法:
1、注意,只是讨论可行性,还没有提供解决方案。
采集与搜索引擎的机器人不同。采集需要对网页进行分析,以找到规则,分别对标题和内容进行读取并记录到数据库中。
如果我们能够把网页做成没有规则,采集也就无从入手了。
说到规则,我就想到了空格。
空格这东西,在HTM的<>中,并不产生作用,也就是说,一个空格的位置,你多加几个也是没关系的。象<table>你可以写成< table>,<table >,<  table     >。都可以,所以,如果在网页里面,特别是采集程序重点分析的位置,我们利用程序,在这些位置加些空格,采集也就难以下手了,就算采到了,也就几篇而已,影响不大。
我准备这样做,象原来在模板中的<table>,我会改成<{$space1$}table{$space2$}>,在这里,{$space1$}和{$space2$}是自定义标签(也可以融合到程序中),然后在程序中使用随机数来决定这两个标签用多少个空格来代替。
呵呵,人家现在想用<table>来做为特征采集是完全做不到的了。但对于我的网页,显示上一点影响也没有,对于搜索引擎的机器人也一点影响没有。
我想这应该是最合适的方法。
2、采取封IP的办法防止采集。
果然有效,企图采集者无功而返,经三个多月应用,已找不到采集者了,实在有点寂寞,哈哈。实践证明,本方法绝对不影响搜索收录!具体代码如下:
<%
Dim IP,IPString,VisitIP
'要禁止的IP地址
IPString="|61.233.40.201|61.240.131.121|127.0.0.1|211.154.44.169|219.150.14.36|"
'获取IP地址
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IP = "" Then
IP = Request.ServerVariables("REMOTE_ADDR")
End If
VisitIP="|"&IP&"|"
If instr(1,IPString,VisitIP)>0 Then
response.write "你的IP被禁止"
response.end
End If
%>
使用方法:
将上述代码放到<head>区,如果不知道什么是<head>区,你就放到</head>上面即可!
IPString="|61.233.40.201|61.240.131.121|127.0.0.1|211.154.44.169|219.150.14.36|"是采集你网站内容的垃圾站服务器IP,你可以自己替换,不知道对方服务器IP的可以点开始------运行-----输入ping www.*****.com(采集网站的网址)获得其IP!
127.0.0.1是防止从本地采集,你可以在本地试试,因为现在许多新网站都是从本地采集,所以这个127.0.0.1一定要封它!
现在许多网站程序有封IP功能,就不需要上述代码了,直接封其服务器IP就行!

欢迎分享转载→ 网站防采集方法大全

© 2015-2019 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们