滚动天气预报-调用天气网页

来源:互联网 发布:深圳经纬之创网络 编辑:程序博客网 时间:2024/06/08 16:31
<%
On Error Resume Next
Function RemoveHTML(strHTML)
Dim objRegExp, Match, Matches 
Set objRegExp = New Regexp

objRegExp.IgnoreCase = True
objRegExp.Global = True
'取闭合的<>
objRegExp.Pattern = "<.+?>"
'进行匹配
Set Matches = objRegExp.Execute(strHTML)

' 遍历匹配集合,并替换掉匹配的项目
For Each Match in Matches 
strHtml=Replace(strHTML,Match.Value,"")
Next
RemoveHTML=strHTML
Set objRegExp = Nothing
End Function
'判断数据库里是否有当天的天气预报

'如果没有,就读取未能远程数据并保存在数据库内
'声明一个函数,用于读取远程文件
function getHTTPPage(url)
dim Http
set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then 
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
set http=nothing
if err.number<>0 then err.Clear 
end function

'声明一个函数,对读取的远程文件进行汉字转码
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


'要偷的网页的地址,你只需要从http://www.weathercn.com/找到你要偷取的页面就行
Url="http://weather.news.qq.com/inc/ss248.htm"

Html = getHTTPPage(Url) '开始读取远程地址
Html2=RemoveHTML(Html)
'搜索要偷取的内容的开始位置
tqStr_start = instr(Html2,"A.color4:hover { COLOR: #DD7D02;TEXT-DECORATION: underline}")

tqStr_end = instr(Html2,"function")+1

Html1 = Mid(Html2,tqStr_start+59,tqStr_end-305)
Html3 = "<font color=#FF3300 size=2>"&Html1&"</font>"

Html4=replace(Html3,"合肥","<b><font color=#FF3300 size=2>合肥天气</font></b>")

%>
<font color=#FF3300 size=2>今日</font><script language=JavaScript>
<!-- Begin
 
 today=new Date();
 function initArray(){
   this.length=initArray.arguments.length
   for(var i=0;i<this.length;i++)
   this[i+1]=initArray.arguments[i]  }
   var d=new initArray(
     "星期日",
     "星期一",
     "星期二",
     "星期三",
     "星期四",
     "星期五",
     "星期六");
document.write(
     "<font color=#FF3300 size=2> ",
     today.getYear(),"年",
     today.getMonth()+1,"月",
     today.getDate(),"日  ",
     d[today.getDay()+1],
     "</font>" );
//  End -->
</script> <%=Html4%>
==========================================================
调用QQ天气 显示完整的数据(根据以上代码修改)

<%
'调用天气
On Error Resume Next
Function RemoveHTML(strHTML)
Dim objRegExp, Match, Matches
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
'取闭合的<>
objRegExp.Pattern = "<.+?>"
'进行匹配
Set Matches = objRegExp.Execute(strHTML)
' 遍历匹配集合,并替换掉匹配的项目
For Each Match in Matches
strHtml=Replace(strHTML,Match.Value,"")
Next
RemoveHTML=strHTML
Set objRegExp = Nothing
End Function
'判断数据库里是否有当天的天气预报
'如果没有,就读取未能远程数据并保存在数据库内
'声明一个函数,用于读取远程文件
function getHTTPPage(url)
dim Http
set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
'Response.Write(getHTTPPage)
set http=nothing
if err.number<>0 then err.Clear
end function
'声明一个函数,对读取的远程文件进行汉字转码
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

'要调用网页的地址,你只需要从http://www.weathercn.com/找到你要偷取的页面就行
Url="http://weather.news.qq.com/inc/ss300.htm"
Html = getHTTPPage(Url) '开始读取远程地址
Html= replace(Html,"<img src=","&lt;img src=")
Html2=RemoveHTML(Html & "<br>")
'搜索要偷取的内容的开始位置
tqStr_start = instr(Html2,"height=""6"">")
tqStr_end = instr(Html2,"&lt;img src=""/images/r_tembg3.gif""")

Html1 = Mid(Html2,tqStr_start+11,tqStr_end-tqStr_start-11)
Html1 = replace(Html1,"&lt;","<")
Html1 = replace(Html1,"/images/","http://weather.news.qq.com/images/")
Html3 = "<font color=#FF3300 size=2>"&Html1&"</font>"
Html4=replace(Html3,"湛江","<b><font color=#FF3300 size=2>湛江天气</font></b>")
%>
<%=Html4%>