当前位置: 首页 > 图文教程 > 网络编程 > ASP > xmlhttp组件获取远程文件并筛选出目标数据

ASP
嵌入式Web视频点播系统实现方法
GB与BIG5内码转换COM原代码
金额阿拉伯数字转换为中文的存储过程
利用 WSH 作定时工作流程
用InstallShield 进行 ASP 软件的打包和自动安装
服务器获得客户端时间的方法
关于如何读出图片的高度与长度的总结
按下回车键指向下一个位置的一个函数
一个不错的随机函数
一套加解密字符串的函数
一段加密函数(base64)
一段加密函数
使用asp实现支持附件的邮件系统(三)
使用asp实现支持附件的邮件系统(二)
使用asp实现支持附件的邮件系统(一)
检查当前目录下是否存在指定的文件,如果存在就重新命名
MD5加密的javascript实现例子
如何在服务器端调用winzip命令行对上传的多个文件打包压缩
MD5不可逆加密算法的ASP实现实例
看人家用使用InstallShield制作ASP安装程序(6)

ASP 中的 xmlhttp组件获取远程文件并筛选出目标数据


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

 

getfile.asp
<%
''利用xmlhttp组件获取远程文件保存到当前空间
''此是网站建设中的一个实例,远程获取一个网页内容并筛选出相关的天气数据,当然可以跳过文件本地存储再获取数据
''参考了xoyu的函数,在此感谢
fileurl="http://www.hbqx.gov.cn/other/tqyb/inc_city_hb.asp"
dotloc=InStrRev(fileurl,".")
filepath="thistest"&mid(fileurl,dotloc) ''建立同类型文件名
''filepath="thistest.htm"

call saveRemoteFile(filepath,fileurl)

sub SaveRemoteFile(LocalFileName,RemoteFileUrl)
dim Ads,Retrieval,GetRemoteData
Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", RemoteFileUrl, False, "", ""
.Send
GetRemoteData = .ResponseBody
'' GetDetail = .ResponseText ''对文本型文件可直接获取内容,但不能支持中文,不知道如何解决
End With

Set Retrieval = Nothing
''RESPONSE.WRITE GetDetail

Set Ads = Server.CreateObject("Adodb.Stream") ''生成对应文件
With Ads
.Type = 1
.Open
.Write GetRemoteData
.SaveToFile server.MapPath(LocalFileName),2
.Cancel()
.Close()
End With
Set Ads=nothing
end sub

''以上完成远程存储文件,以下只适用于对文本型文件的操作www.knowsky.com
set fso=server.createobject("scripting.filesystemobject") ''读取文件内容
set fileout=fso.opentextfile(server.mappath(filepath),1)
content=fileout.readall
set fileout=nothing
set fso=nothing
''response.write content

contentarr=split(content,"<td") ''根据内容进行筛选
for i=1 to ubound(contentarr)
if instr(contentarr(i),"恩施") then thisloc=i
next
dim xu(5)
for j=0 to 4
con1=contentarr(thisloc+j)
start1=instr(con1,">")
con1=right(con1,len(con1)-start1)
stop1=instr(con1,"<")
con1=left(con1,stop1-1)
str=str&contentarr(thisloc+j)
xu(j)=trim(con1)
next
if xu(1)<>"" then
response.write "document.write('恩施州未来24小时天气预报:"&xu(1)&",最低温度"&xu(2)&"摄氏度,最高温度"&xu(3)&"摄氏度,风向:"&xu(4)&".--武汉中心气象台发布');"
else
response.write "document.write('暂未发布');"
end if
''response.write server.htmlencode(str)
%>

在另一个htm页中引用显示获取内容
<script src="getfile.asp"></script>