西安网站建设动态网页防止被采集的方法

18502011-06-20

 说采集只访问当前网页,昨天在网上看到一个防采集软件,西安网站建设团队点墨网络竭诚为您服务。不会访问网页的图片、JS等,今天突然想到通过动态顺序和Js访问分别记录访问者的IP然后进行IP判断,由于采集过程不会访问JS采集的时候只会查到用动态顺序记录的IP而不会有通过JS记录的IP从而实现网页顺序的防采集。

首先放一段动态语句,防采集的原理非常简单。把访问者的IP加入到数据库的一个表里,然后在页面底部加入一个JSJS直接访问动态页面,将访问者的IP加入到数据库的另外一个表里。再次访问的时候,从两个表里读IP数据,然后判断时间差,如果只在第一个表里找到第二个表里找不到或者时间差超越10秒,则认为是采集。

优点

只要是动态语言就能很容易的实现,1.布置简单。无需借助服务器端程序

几乎能封杀所有的采集过程2.杀伤力大。>

缺点

如果需要实际使用需要考虑一些特殊情况,1.第一个缺点还是杀伤力大。以免误杀已经杀掉搜索爬虫

静态页面就没法用了2.只适用于动态网页。>

不过原理自身就不是很复杂,流程写的比较乱。下面附上顺序例子,懂ASP应该很快就能看懂。

顺序例子(ASP+A CCESS测试顺序下载)

1.建立数据库

默认值=Now表1Ip1字段Ip1_A dderss文本)Ip1_Time日期/时间。>

默认值=Now表2Ip2字段Ip2_A dderss文本)Ip2_Time日期/时间。>

全部代码请见测试顺序中)2.Index.asp仅动态代码。>

<%@LA NGUA GE="VBSCRIPT"CODEPA GE="936"%>

<%

Rs,DimConn.Sqlstr,Ip,IpTime,IpTime2,NewUser

NewUser=0

SetConn=Server.CreateObject"A dodb.Connection"

SetRs=Server.Createobject"A dodb.RecordSet"

ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath"Data.mdb"

Conn.OpenConnStr

Ip=Request.ServerVari"REMOTE_A DDR"

Sqlstr="Select*From[Ip1]WhereIp1_A ddress='"&Ip&"'OrderByIp1_IdDesc"

Conn,Rs.OpenSqlstr.1,3

IfRs.EofThen

NewUser=1

A pplication.Lock

Rs.A ddNew

R"Ip1_A ddress"=Ip

Rs.Update

A pplication.UnLock

Else

IpTime=R"Ip1_Time"

A pplication.Lock

Rs.A ddNew

R"Ip1_A ddress"=Ip

Rs.Update

A pplication.UnLock

EndIf

Rs.Close

IfNewUser=0Then

Sqlstr="Select*From[Ip2]WhereIp2_A ddress='"&Ip&"'OrderByIp2_IdDesc"

Conn,Rs.OpenSqlstr.1,3

IfRs.EofThen

Rs.Close

Response.Writ"请勿采集!"

Response.End

Else

IpTime2=R"Ip2_Time"

IpTime2,IfDateDiff"s".IpTim>10Then

Rs.Close

Response.Writ"请勿采集!"

Response.End

EndIf

EndIf

Rs.Close

EndIf

%>

3.Js.asp

<%

Rs,DimConn.Sqlstr,Ip

SetConn=Server.CreateObject"A dodb.Connection"

SetRs=Server.Createobject"A dodb.RecordSet"

ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath"Data.mdb"

Conn.OpenConnStr

Ip=Request.ServerVari"REMOTE_A DDR"

Sqlstr="Select*From[Ip2]"

Conn,Rs.OpenSqlstr.1,3

A pplication.Lock

Rs.A ddNew

R"Ip2_A ddress"=Ip

Rs.Update

A pplication.UnLock

Rs.Close

%>

4.Get.asp

<%@LA NGUA GE="VBSCRIPT"CODEPA GE="936"%>

<%

%22GB2312"_fcksavedurl="http://localhost/Index.asp%22,Response.WritServer.HTMLEncodGetHttpPag"http://localhost/Index.asp","GB2312"

'==============================

'函 数 名:GetHttpPage

'作 用:获取页面源代码函数

'参 数:网址HttpUrl

'==============================

CodeFunctionGetHttpPagHttpUrl.>

IfIsNullHttpUrl=TrueOrHttpUrl=""Then

GetHttpPage="A 站点维护中!"

ExitFunction

EndIf

OnErrorResumNext

DimHttp

SetHttp=server.createobject"MSX"&"ML2.XML"&"HTTP"

HttpUrl,Http.open"GET".False

Http.Send

IfHttp.Readystate<>4then

SetHttp=Nothing

GetHttpPage="B站点维护中!"

Exitfunction

Endif

CodGetHttpPage=BytesToBSPHttp.responseBody.>

SetHttp=Nothing

IfErr.number<>0then

Err.Clear

GetHttpPage="C站点维护中!"

Exitfunction

EndIf

EndFunction

'==============================

'函 数 名:BytesToBstr

'作 用:转换编码函数

'参 数:字符串Bodi编码Cset

'==============================

CsetFunctionBytesToBstrBody.>

DimObjstream

SetObjstream=Server.CreateObject"ado"&"d"&"b.st"&"re"&"am"

Objstream.Typ=1

Objstream.Mod=3

Objstream.Open

Objstream.Writbody

Objstream.Posit=0

Objstream.Typ=2

Objstream.Charset=Cset

BytesToBstr=Objstream.ReadText

Objstream.Close

setObjstream=nothing

EndFunction

%>

通过本文您对西安网站建设有了进一步了解,本公司温馨提醒:找西安做网站公司,请选择手续齐全、业务精、服务好的正规公司。

工商网上亮照

版权所有:西安点墨网络科技有限公司 信息备案编号: 陕ICP备11004160号-1

客户服务电话:15229292610

公司注册地址:西安市雁塔区融鑫路丽湾蓝岛1幢3单元16层31605号

临时办公地址:西安市雁塔区朱雀大街紫郡长安F3

Sitemap 网站地图 手机版

服务热线:15229292610

客服信箱:vip@dianmo.cc

846461336327

版权所有:西安点墨网络科技有限公司 信息备案编号: 陕ICP备11004160号-1