当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP小偷(远程数据获取)程序入门教程

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 212 ::
收藏到网摘: n/a

这里所说的“小偷”指的是在asp中运用xml中的xmlhttp组件提供的强大功能,把远程网站上的数据(图片,网页及其他文件)抓取到本地,经过各种处理后显示到页面上或者存储进数据库的一类程序。你可以通过这种小偷程序,完成过去一些似乎完全不可能实现的任务,比如说把某个站的页面偷梁换柱后变成自己的页面,或者把某个站的一些数据(文章,图片)保存到本地数据库中加以利用。“小偷”的优点有:无须维护网站,因为小偷程序中的数据来自其他网站,它将随着该网站的更新而更新;可以节省大量的服务器资源,一般小偷程序就几个文件,所有网页内容都是来自其他网站。缺点在于:不稳定,如果目标网站出错,程序也会出错,而且,如果目标网站进行升级维护,那么小偷程序也要进行相应修改;速度,因为是远程调用,速度和在本地服务器上读取数据比起来,肯定要慢一些。怎么样,听起来很神奇吧?我们现在就开始来学习一些“小偷”程序的入门知识吧!

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

代码如下:

1 <%
2 On Error Resume Next
3 Server.Scripttimeout=9999999
4 Function Gethttppage(Path)
5 T = Getbody(Path)
6 Gethttppage=Bytestobstr(T,"Gb2312")
7 End Function
8
9 ' 首先,进行小偷程序的一些初始化设置,以上代码的作用分别是忽略掉所有非致命性错误,把小偷程序的运行超时时间设置得很长(这样不会出现运行超时的错误),转换原来默认的utf-8编码转换成gb2312编码,否则直接用xmlhttp组件调用有中文字符的网页得到的将是乱码。
10
11 Function Getbody(Url)
12 On Error Resume Next
13 Set Retrieval = Createobject("Microsoft.Xmlhttp")
14 With Retrieval
15 .Open "Get", Url, False, "", ""
16 .Send
17 Getbody = .Responsebody
18 End With
19 Set Retrieval = Nothing
20 End Function
21
22 '然后调用xmlhttp组件创建一个对象并进行初始化设置。
23
24 Function Bytestobstr(Body,Cset)
25 Dim Objstream
26 Set Objstream = Server.Createobject("Adodb.Stream")
27 Objstream.Type = 1
28 Objstream.Mode =3
29 Objstream.Open
30 Objstream.Write Body
31 Objstream.Position = 0
32 Objstream.Type = 2
33 Objstream.Charset = Cset
34 Bytestobstr = Objstream.Readtext
35 Objstream.Close
36 Set Objstream = Nothing
37 End Function
38
39 Function Newstring(Wstr,Strng)
40 Newstring=Instr(Lcase(Wstr),Lcase(Strng))
41 If Newstring<=0 Then Newstring=Len(Wstr)
42 End Function
43
44 '处理抓取回来的数据需要调用adodb.Stream组件并进行初始化设置。%>