|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时.程序|教程|进门教程|数据|小偷程序 这里所说的“小偷”指的是在ASP中使用XML中的XMLHTTP组件供应的壮大功效,把远程网站上的数据(图片,网页及其他文件)抓取到当地,经由各类处置后显现到页面上大概存储进数据库的一类程序。你能够经由过程这类小偷程序,完成已往一些仿佛完整不成能完成的义务,好比说把某个站的页面移花接木后酿成本人的页面,大概把某个站的一些数据(文章,图片)保留到当地数据库中加以使用。“小偷”的长处有:不必保护网站,由于小偷程序中的数据来自其他网站,它将跟着该网站的更新而更新;能够节俭大批的服务器资本,一样平常小偷程序就几个文件,一切网页内容都是来自其他网站。弱点在于:不不乱,假如方针网站堕落,程序也会堕落,并且,假如方针网站举行晋级保护,那末小偷程序也要举行响应修正;速率,由于是远程挪用,速率和在当地服务器上读取数据比起来,一定要慢一些。怎样,听起来很奇妙吧?我们如今就入手下手来进修一些“小偷”程序的进门常识吧!
我们拿个复杂点的器材来研讨一下吧,QQ网站上的天色预告程序
代码以下:
<%
OnErrorResumeNext
Server.ScriptTimeOut=9999999
FunctiongetHTTPPage(Path)
t=GetBody(Path)
getHTTPPage=BytesToBstr(t,"GB2312")
Endfunction
’起首,举行小偷程序的一些初始化设置,以上代码的感化分离是疏忽失落一切非致命性毛病,把小偷程序的运转超不时间设置得很长(如许不会呈现运转超时的毛病),转换本来默许的UTF-8编码转换成GB2312编码,不然间接用XMLHTTP组件挪用有中笔墨符的网页失掉的将是乱码。
FunctionGetBody(url)
onerrorresumenext
SetRetrieval=CreateObject("Microsoft.XMLHTTP")
WithRetrieval
.Open"Get",url,False,"",""
.Send
GetBody=.ResponseBody
EndWith
SetRetrieval=Nothing
EndFunction
’然后挪用XMLHTTP组件创立一个工具并举行初始化设置。
FunctionBytesToBstr(body,Cset)
dimobjstream
setobjstream=Server.CreateObject("adodb.stream")
objstream.Type=1
objstream.Mode=3
objstream.Open
objstream.Writebody
objstream.Position=0
objstream.Type=2
objstream.Charset=Cset
BytesToBstr=objstream.ReadText
objstream.Close
setobjstream=nothing
EndFunction
FunctionNewstring(wstr,strng)
Newstring=Instr(lcase(wstr),lcase(strng))
ifNewstring<=0thenNewstring=Len(wstr)
EndFunction
’处置抓取返来的数据必要挪用adodb.stream组件并举行初始化设置。%>
’以下即为页面显现部分
<%
Dimwstr,str,url,start,over,city
’界说一些必要利用到的变量
city=Request.QueryString("id")
’程序传回的ID变量(即用户选择的乡村)赋给id
url="http://appnews.qq.com/cgi-bin/news_qq_search?city="&city&""
’这里设置必要抓取的页面地点,固然你也能够间接指定某个地点而不利用变量
wstr=getHTTPPage(url)
’猎取指定页面的全体数据
start=Newstring(wstr,"<html>")
’这里设置必要处置的数据的头部,这个变量应视分歧情形而设置,详细内容能够经由过程检察必要抓取的页面的源代码来断定。由于在这个程序里我们必要抓取全部页面,以是设置为页面全体抓取。注重,设置的内容必需是页面内容独一的,不成以反复。
over=Newstring(wstr,"</HTML>")
’和start绝对应的就是必要处置的数据的尾部,一样的,设置的内容必需是页面中独一的。
body=mid(wstr,start,over-start)
’设置显现页面的局限
’上面就是动用天地移动+++的时分了,经由过程replace能够用一些字符交换失落数据中指定的字符。
body=replace(body,"skin1","天色预告-斯克收集")
body=replace(body,"http://appnews.qq.com/cgi-bin/news_qq_search?city","tianqi.asp?id")
’本程序中已完成了交换的事情,假如有其他必要的话能够持续举行相似的交换操纵。
response.writebody
%>
交换完必要修正的内容后,就能够把修正的内容显现在页面上了。至此程序停止
程序利用办法及了局:把上述代码往失落申明部分后保留为tianqi.asp,上传到撑持ASP和XML的空间下,在扫瞄器中运转便可。你能够在在这个程序的基本长进行进一步的界面丑化大概程序优化。
以上只是一些关于XMLHTTP组件的低级使用,实践上它还能完成的功效另有良多,好比说保留远程图片到当地服务器上,共同adodb.stream组件能够把猎取来的数据保留进数据库。小偷的感化和利用局限都很广。可是不成以拿来做守法的事哦!
大概另有人要问了,这类“小偷”程序岂非只是ASP的专利吗?非也,PHP经由过程fopen函数一样能够完成一样的效果,因为PHP自己的各类特性,写出来的小偷程序和ASP比拟,在体积和实行效力上都有者分明的上风,但限于篇幅,这里就纷歧一申明了。
asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。 |
|