方法一 <% '常用函數 '1、輸入url目標網頁地址,返回值getHTTPPage是目標網頁的html代碼 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 '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 txtURL=server.MapPath("../index.asp") sText = getHTTPPage(txtURL) Set FileObject=Server.CreateObject("Scripting.FileSystemObject") filename="../index.htm" Set openFile=FileObject.OpenTextfile(server.mapPath(filename),2,true) 'true為不存在自行建立 openFile.writeline(sText) Set OpenFile=nothing %> <script> alert("靜態網頁生成完畢"); history.back(); </script> 方法二: resourcefile=server.MapPath("../index.asp") targetfile=server.MapPath("../index.htm") Set html = Server.CreateObject("CDO.Message") html.CreateMHTMLBody resourcefile,31 indexcode=html.HTMLBody Set html = Nothing if instr(indexcode,"</BODY></HTML>")<=0 then response.Write("首頁生成失敗") response.End() else Set oFileSys = Server.CreateObject("Scripting.FileSystemObject") Set outfile=oFileSys.CreateTextFile(targetfile) outfile.WriteLine indexcode outfile.close Set outfile=nothing set oFileSys=nothing response.Write("首頁生成完畢!") end if
|