当前位置: 首页 > 图文教程 > 网络编程 > ASP > 从新浪提取上海天气的vbs

ASP
IIS访问ASP页面时报错The requested resource is in use.的解决办法
错误类型:Provider (0x80004005)未指定的错误 的一个处理方法
关于asp+access的安全问题分析
把RS.GetRows看得更清楚
asp下UTF-8页面乱码的解决方法
解决使用良精企业建站7.0未注册问题
在ASP中连接MySQL数据库的方法,最好的通过ODBC方法
flash与js通讯方法
ASP操作Excel相关技术总结
解决用Access数据库建站维护不便的问题的方法
ASP实现GB2312字符与区位码的相互转换的代码
对于ASP编码问题的深入研究与最终解决方案
ASP生成UTF-8编码的代码
删除A表中在B表中不存在的数据
动网防恶意广告比较有效的办法附asp代码
asp磁盘缓存技术使用的代码
网页语言编码及asp乱码问题解决方案
FSO遍历目录实现全站插马的代码
关于无限分级(ASP+数据库+JS)的实现代码
如何写ASP入库小偷程序

ASP 中的 从新浪提取上海天气的vbs


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

  起始很简单的。分析一下抓下来的代码,然后处理一下就行了。


'文件:weather.vbs 放入计划任务,每天早上8:30执行,生成饱含
'文件供首页使用
'执行方式:cscript D:\上海国家会计学院网站\内部社区\vbs\weather.vbs
'********************************************************************************************************
' Symantec ScriptBlocking Authenticated File
' E9815BB2-5813-400B-9ED5-156350335DE3

const incFilePath = "D:\上海国家会计学院网站\内部社区\web\club\" '包含文件所在目录,最后的\号是必须的
const logfile = "d:\club-job-log.txt" '日志文件
const incWeather = "weather-report.asp" '包含文件所在目录,最后的\号是必须的
dim fs
dim f
on error resume next

Set fs = CreateObject("Scripting.FileSystemObject")
dim wstr
wstr=getHTTPPage("http://sh.sina.com.cn/")
'Response.Write wstr

if instr(wstr,"<img src="/upload/tech/20091103/20091103101756_8c235f89a8143a28a1d6067e959dd858.gif" width=172 height=17>")>0 then
wstr=mid(wstr,instr(wstr,"<img src="/upload/tech/20091103/20091103101756_8c235f89a8143a28a1d6067e959dd858.gif" width=172 height=17>")+len("<img src="/upload/tech/20091103/20091103101756_8c235f89a8143a28a1d6067e959dd858.gif" width=172 height=17>"))
wstr=mid(wstr,instr(wstr,"<table width=160 border=0 cellspacing=0 cellpadding=0>"))
wstr=mid(wstr,1,instr(wstr,"</table>")+len("</table>"))
end if
wstr=replace(wstr,"<tr><td colspan=3 align=right><a href=http://weather.sina.com.cn/>其他城市</a><font color=#015B7B>>></font></td></tr>","")
dim pos1,pos2
pos1=instr(wstr,"<tr>")
pos2=instr(pos1,wstr,"</tr>")
wstr=right(wstr,len(wstr)-pos2-4-4)
wstr=replace(wstr,"</table>","")
wstr=replace(wstr,"width=35","")
wstr=replace(wstr,"width=45","")
wstr=replace(wstr,"width=60","")
'Response.Write wstr
if err.number=0 then
Set f = fs.CreateTextFile(incFilePath & incWeather,true)
f.write wstr
set f = nothing
else
wscript.echo err.description
end if
set fs = nothing

Sub writeLog(Msg)
On Error Resume Next
Dim f
Set f = fs.OpenTextFile(logfile,8,true)
f.WriteLine now & " - " & Msg
f.close
End Sub

function getHTTPPage(url)
on error resume next
dim http
set http=createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytes2BSTR(Http.responseBody)
set http=nothing
if err.number<>0 then err.Clear
end function

Function bytes2BSTR(vIn)
dim strReturn
dim i,ThisCharCode,NextCharCode
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function


'***********************************************
'