我现在有一个 asp 写的天气预报小偷的程序是从雅虎天气上弄下来的 ,现在想把这个程序改成 Java 的程序, 请各位高手帮忙啊 下面是程序的代码。。 <%
'-------------对应城市名---------------------
dim url,city,day1,day2,day3,wstr
city="大连"'request("city")
Url="http://weather.cn.yahoo.com/area.html?city="&city&"" ',这是要偷取的网页地址
wstr=getHTTPPage(url) '获取指定页面的全部数据
sstr="<td width=""33%"" class=""line1"">"
sstr2="width=""20"""
sstr3="width=""40"""
sstr4="<!--3--></div>"start=Instr(wstr,sstr)
over=Instr(start+1,wstr, sstr)
'今天'response.write start & "======= "& over & "=======" & start+Len(sstr)
day1=Replace(Mid(wstr,start+Len(sstr),over-Len(sstr)-start-6),"<br>","")
day1=Replace(day1,sstr2,sstr3)
response.write day1 & "<br>"'明天start=Instr(start+1,wstr,sstr)
over=Instr(start+1,wstr,sstr)
'response.write start & "======= "& over
day1=Replace(Mid(wstr,start+Len(sstr),over-Len(sstr)-start-6),"<br>","")
day1=Replace(day1,sstr2,sstr3)
response.write day1 & "<br>"'后天start=Instr(start+1,wstr,sstr)
over=Instr(start+1,wstr,sstr4)
'response.write start & "======= "& over
day1=Replace(Mid(wstr,start+Len(sstr),over-Len(sstr)-start-28),"<br>","")
day1=Replace(day1,sstr2,sstr3)
response.write day1 & "<br>"
Function Html2clear(Str) '清楚没有用的HTML代码
Dim StrContent:StrContent = Trim(Str)
If Not IsNull(StrContent) Then
Dim objRegExp, strOutput
Set objRegExp = New Regexp objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "<.+?>" 'Replace all HTML tag matches with the empty string
StrContent = objRegExp.Replace(StrContent,"")
End If
Html2clear = StrContent
End Function
'下面的常用函数'首先,进行小偷程序的一些初始化设置,以下代码的作用分别是忽略掉所有非致命性错误,把小偷程序的运行超时时间设置得很长(这样不会出现运行超时的错误), On Error Resume Next
Server.ScriptTimeOut=9999999
Function getHTTPPage(Path)
t = GETBody(Path)
End function'---------------------------------盗窃开始设置------------------------------------------------'1、下面是经典的小偷核发心源码.输入url目标网页地址,返回值getHTTPPage是目标网页的代码
function getHTTPPage(url)
dim Http
set Http=server.createobject("Microsoft.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"gb2312") '注意WAP网页用utf-8,WEB用gb2312
set http=nothing
if err.number<>0 then err.Clear
end function '2、转换乱玛,直接用xmlhttp调用有中文字符的网页得到的将是乱玛,可以通过adodb.stream组件进行转换
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
%>
'-------------对应城市名---------------------
dim url,city,day1,day2,day3,wstr
city="大连"'request("city")
Url="http://weather.cn.yahoo.com/area.html?city="&city&"" ',这是要偷取的网页地址
wstr=getHTTPPage(url) '获取指定页面的全部数据
sstr="<td width=""33%"" class=""line1"">"
sstr2="width=""20"""
sstr3="width=""40"""
sstr4="<!--3--></div>"start=Instr(wstr,sstr)
over=Instr(start+1,wstr, sstr)
'今天'response.write start & "======= "& over & "=======" & start+Len(sstr)
day1=Replace(Mid(wstr,start+Len(sstr),over-Len(sstr)-start-6),"<br>","")
day1=Replace(day1,sstr2,sstr3)
response.write day1 & "<br>"'明天start=Instr(start+1,wstr,sstr)
over=Instr(start+1,wstr,sstr)
'response.write start & "======= "& over
day1=Replace(Mid(wstr,start+Len(sstr),over-Len(sstr)-start-6),"<br>","")
day1=Replace(day1,sstr2,sstr3)
response.write day1 & "<br>"'后天start=Instr(start+1,wstr,sstr)
over=Instr(start+1,wstr,sstr4)
'response.write start & "======= "& over
day1=Replace(Mid(wstr,start+Len(sstr),over-Len(sstr)-start-28),"<br>","")
day1=Replace(day1,sstr2,sstr3)
response.write day1 & "<br>"
Function Html2clear(Str) '清楚没有用的HTML代码
Dim StrContent:StrContent = Trim(Str)
If Not IsNull(StrContent) Then
Dim objRegExp, strOutput
Set objRegExp = New Regexp objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "<.+?>" 'Replace all HTML tag matches with the empty string
StrContent = objRegExp.Replace(StrContent,"")
End If
Html2clear = StrContent
End Function
'下面的常用函数'首先,进行小偷程序的一些初始化设置,以下代码的作用分别是忽略掉所有非致命性错误,把小偷程序的运行超时时间设置得很长(这样不会出现运行超时的错误), On Error Resume Next
Server.ScriptTimeOut=9999999
Function getHTTPPage(Path)
t = GETBody(Path)
End function'---------------------------------盗窃开始设置------------------------------------------------'1、下面是经典的小偷核发心源码.输入url目标网页地址,返回值getHTTPPage是目标网页的代码
function getHTTPPage(url)
dim Http
set Http=server.createobject("Microsoft.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"gb2312") '注意WAP网页用utf-8,WEB用gb2312
set http=nothing
if err.number<>0 then err.Clear
end function '2、转换乱玛,直接用xmlhttp调用有中文字符的网页得到的将是乱玛,可以通过adodb.stream组件进行转换
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
%>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货