打印

[ASP在线教程] asp小偷(远程数据获取)程序的入门教程

asp小偷(远程数据获取)程序的入门教程

代码如下:

<%
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
%>

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




TOP

返回顶部
AYBlue

Processed in 0.075649 second(s), 7 queries.

当前时区 GMT+8, 现在时间是 2009-1-8 14:08 京ICP备06054220号

清除 Cookies - 联系我们 - 163K.com - Archiver - WAP