我们拿个简单点的东西来研究一下吧,QQ网站上的天气预报程序

 

代码如下:

 

<%

On Error Resume Next

Server.ScriptTimeOut=9999999

Function getHTTPPage(Path)

t = GetBody(Path)

getHTTPPage=BytesToBstr(t,"GB2312")

End function

 

" 首先,进行小偷程序的一些初始化设置,以上代码的作用分别是忽略掉所有非致命性错误,把小偷程序的运行超时时间设置得很长(这样不会出现运行超时的错误),转换原来默认的UTF-8编码转换成GB2312编码,否则直接用XMLHTTP组件调用有中文字符的网页得到的将是乱码。

 

Function GetBody(url) 

on error resume next

Set Retrieval = CreateObject("Microsoft.XMLHTTP") 

With Retrieval 

.Open "Get", url, False, "", "" 

.Send 

GetBody = .ResponseBody

End With 

Set Retrieval = Nothing 

End Function

 

"然后调用XMLHTTP组件创建一个对象并进行初始化设置。

 

Function BytesToBstr(body,Cset)

dim objstream

set objstream = Server.CreateObject("adodb.stream")

objstream.Type = 1

objstream.Mode =3

objstream.Open

objstream.Write body

objstream.Position = 0

objstream.Type = 2

objstream.Charset = Cset

BytesToBstr = objstream.ReadText 

objstream.Close

set objstream = nothing

End Function

 

Function Newstring(wstr,strng)

Newstring=Instr(lcase(wstr),lcase(strng))

if Newstring<=0 then Newstring=Len(wstr)

End Function

 

"处理抓取回来的数据需要调用adodb.stream组件并进行初始化设置。%>

 

"以下即为页面显示部分

 

<%

Dim wstr,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.write body

%>

 

替换完需要修改的内容后,就可以把修改的内容显示在页面上了。至此程序结束

 

 

程序使用方法及结果:把上述代码去掉说明部分后保存为tianqi.asp,上传到支持ASP和XML的空间下,在浏览器中运行即可。你可以在在这个程序的基础上进行进一步的界面美化或者程序优化。

 

以上只是一些关于XMLHTTP组件的初级应用,实际上它还能实现的功能还有很多,比如说保存远程图片到本地服务器上,配合adodb.stream组件可以把获取来的数据保存进数据库。小偷的作用和使用范围都很广。但是不可以拿来做违法的事哦!

 

 

高端网站建设价格套餐:

500元成品模板网站套餐1000元基础型网站套餐1800元标准定制设计套餐2800元精美定制设计套餐3800-8000元商务型套餐行业门户型套餐其它定制套餐 文章由重庆一佰互联高端网站建设http://www.rzxsoft.cn编辑整理,转载请注明出处