致力于高端网站建设服务的专业公司
网站建设热线:010-51000596
首页 > 网站资讯 > 网站建设 > 网站建设过程中如何防止内容被高手采集

网站建设过程中如何防止内容被高手采集

 

   在互联网如此发达的今天,各种抄袭各种采集泛滥,尤其是一个好的网站,往往好的内容会被采集的体无完肤。我们站长辛辛苦苦制作的东西却被采集了,反而不如别人的好,这是相当打击站长积极性的。所以在网站建设中,我们一般都会为了防止我们辛辛苦苦建设的网站不被轻而易举就采集了,会通过一些技术手段进行处理,防止网站内容被大量采集。以下通过几点方法做详细介绍:
 
    第一种方法,也是最主要和最有效的方法,下面采用实例进行分析说明:
 
    用Persistence为静态页面增加session功能  
 
    一般来说,只有服务器端的CGI程序(ASP、PHP、JSP)具有session会话功能,用来保存用户在网站期间(会话)的活动数据信息,而对于数量众多的静态页面(HTML)来说,只能使用客户端的cookies来保存临时活动数据,但对于cookies的操作是个很烦琐的过程,远没有对于session操作那样简便。为此,本文向读者推荐一种在DHTML中的解决方案“Persistence技术”,使得在静态页面中也能使用session会话功能。
 
    Microsoft Internet Explorer 5浏览器和以后的版本都支持使用状态保持(Persistence)技术,让我们能够在当前会话过程中保存一些数据对象到客户端,减少了对服务器的访问请求,充分发挥了客户端计算机的数据处理能力,从而也整体提升了页面显示效率。
 
    Persistence技术有以下几种行为可供调用:
 
    ? saveFavorite―当页面被添加到收藏夹时保存页面状态和信息 
    ? saveHistory―在当前会话中保存页面状态和信息 
    </SCRIPT>
 
 
    ? 在“导航页面”的<body>和</body>区域中定义一个层用来标识Persistence对象
 
    <P CLASS=userData ID="oPersistP"></P>
 
    ? 在“导航页面”的超链接属性中加入一条语句用来调用函数fnSave:
 
    <a href='redhat2.htm' onmousedown="fnSave()">
 
    接下来,为“内容页面”加入验证功能。
 
    ? 在“内容页面”中加入一个STYLE用来定义persistent类,同时加入存储函数fnLoad用来判断合法性。
 
     >以下为引用的内容:
    <STYLE>
    .userData {behavior:url(#default#userdata);}
    </STYLE>
    <SCRIPT>
    var bPageValid=false;
    function fnLoad(){
    oPersistP.load("oXMLStore");
    if((oPersistP.getAttribute("bIsValid"))&&
    (oPersistP.getAttribute("bIsValid")=="true")){
    bPass=true;
    }
    else{
    bPass=false;
    }
    oPersistP.setAttribute("bIsValid","false");
    oPersistP.save("oXMLStore"); 
    if(bPass==false){
    var sError="来源不明,请您通过授权网站访问我们.";
    alert(sError);
    location.href="about:blank";
     }
     } 
    </SCRIPT>
 
 
    ? 修改“内容页面”的区域如下:
 
    >以下为引用的内容:
    <BODY onload="fnLoad()">
    <P CLASS=userData ID="oPersistP"></P>
 
        ***插入以上代码的页面需在同一个文件夹下,否则会出错。 
 
     从以上范例可看出,通过persistence的使用,使得普通的静态内容页面具有了session功能,一般的不敏感信息完全可以通过session保存在客户端。
 
    使用多个带有session功能的静态页面可以完成众多复杂任务,如虚拟购物车,高级搜索引擎等。同时,由于将以前服务器端承担的部分session任务转移到客户端,减少了数据交互量,大大降低了服务器的负担。
 
    第二种防止网站被采集的方法(ASP代码)
 
    >以下为引用的内容:
    <%
    user_agent=Request.ServerVariables("HTTP_USER_AGENT")
    http_reffer=Request.ServerVariables("HTTP_REFERER")
    server_name=Request.ServerVariables("SERVER_NAME")
    '检查当前用户是否是蜘蛛人
    function check(user_agent)
    allow_agent=split("Baiduspider,Scooter,ia_archiver,Googlebot,FAST-WebCrawler,MSNBOT,Slurp",",")
    check_agent=false
    for agenti=lbound(allow_agent) to ubound(allow_agent)
    if instr(user_agent,allow_agent(agenti))>0 then
    check_agent=true
    exit for
    end if
    next
    check=check_agent
    end function
    if check(user_agent)=False then
    if http_reffer="" or left(http_reffer,len("http://"&server_name)+1)<>"http://"&server_name&"/" then
    %>
    <html><body>
    <form action='' name=checkrefer id=checkrefer method=post>
    </form>
    <script>
    document.all.checkrefer.action=document.URL;
    document.all.checkrefer.submit();
    </script>
    </body></html>
    <%response.end
    end if
    end if
    %>
 
    第三种防止网站被采集的方法:(ASP代码)
 
    >以下为引用的内容:
<%
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 "设计之家http://www.sj33.cn提醒您:抓取很累,歇一会儿吧!"
response.end
End If
%>
 
    通常我们所熟知的一般的防采集方法,主要有以下三个,但技术含量不够高,对于采集高手来讲,这三种方法是没有任何作用的:
 
    1.不要把所有的文章都放在一个目录下,你可以利用日期生成不同的目录名。
 
    2.不要所有的文章都用一个模板,制作尽量多的模板,添文章的时候可有选要用哪个模板,一般采集者的采集程序是有针对性的,他在采集前会对你的页面进行分析,如果你所有的页面排版无规律可寻,那么我想他就会放弃了。
 
    3.每个文章的命名不要有任何规律,比如你的文章是<%=id%>.htm的话,请在前面或后面生成个日期,如:20070911-1234.htm,前面的就是日期了,这样对采集新手来说是非常有效的。