问题描述:
如题
希望有成熟的代码可以供我参考
解析:
以下代码就是将一个ASP的动态页面生成一个HTML的静态页面,注释我已经加上了,自己看吧。
FileName = "Index"&Item_Classid&""
FilePath = Server.MapPath("/")&"\"&FileName
_Temp = _Temp&FilePath&"</LI>"
以上代码是在建立最终生成静态文件的名称和路径。
Do_Url = ""
Do_Url = Do_Url&Request.ServerVariables("SERVER_NAME")&"/detail"
Do_Url = Do_Url&"?Item_Classid="&Item_Classid
strUrl = Do_Url
以上代码是通过拼写Do_Url字符串来获得你所传递过来的文件路径和参数,并最终附值到strUrl变量中。
dim objXmlHttp
set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET",strUrl,false
objXmlHttp.send()
以上这段代码是在通过你所传递过来的strUrl解析该页面中的HTML代码;关键是这句(objXmlHttp.open "GET",strUrl,false )。
Dim binFileData
binFileData = objXmlHttp.responseBody
以上代码是将解析好的HTML代码附到binFileData中
Dim objAdoStream
set objAdoStream = Server.CreateObject("ADODB.Stream")
objAdoStream.Type = 1
objAdoStream.Open()
objAdoStream.Write(binFileData)
objAdoStream.SaveToFile FilePath,2
objAdoStream.Close()
以上这段代码是建立一个文件对象,将所拥有HTML代码的变量binFileData写到该文件中。
_Temp = _Temp&"<UL>"
Response.Write _Temp
Response.Write ( "<BR>" )
Response.Write ( "成功生成文件:" )
以上几句就不用我解释了。。。。:)
其实上面这个做法并不是很科学,还可以将代码更完善些。建议你将这个步骤封装到两个FUNCTION中,这样比较清晰并且方便重复调用,
CreateFile:用于建立生成的静态文件,其中调用GetUrlText进行脚本解析。
Function CreateFile(fileName,url)
Dim fs,fname
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set fname = fs.CreateTextFile(FileName, True)
fname.Write GetUrlText(url)
fname.Close
Set fname = Nothing
Set fs = Nothing
End Function
GetUrlText:用语解析传递回来的ASP页面
Function GetUrlText(url)
Dim xmlHttp
Set xmlHttp = server.createobject("MSXML2.ServerXMLHTTP")
xmlHttp.setTimeouts 10000,10000,10000,30000
xmlHttp.Open "GET",url, False
xml.setRequestHeader "CONTENT-TYPE", "text/xml"
xmlHttp.Send
If xmlHttp.ReadyState = 4 Then
GetUrlText = xmlHttp.responseText
Else
GetUrlText = ""
End If
End Function
里面URL就是你传递过来的地址,而FileName就是生成文件的地址,你在调用时直接调用CreateFile,将FileName和URL传递过去就可以了,怎么样,是不是比上面的看起来清晰很多:)
1. 第1种方法最简单:
前台给div加上一个id和runat:
<div id="div1" runat="server"><img src="1.jpg"/>这里是文字<img src="2.jpg"/>这里是文字
</div>
后台直接这样获取:
string a = div1.InnerHtml2. 第2种方法复杂点:
通过js获取到div的内容,然后用ajax把内容传递给后台页面,然后在后台处理,你可以在网上搜一下Ajax .net,不太难。
你先用第1种吧。
如果一定要用正则提取,我也不会(挠头)不过我可以提供一个我以前做过的思路给你。
都是从网页提取文章,然后导数据库里。
不用正则,用Excel。Excel→数据→自其他来源,选你的这个页面。就可以把文字内容导到Excel里了,然后整理什么的,导数据库什么的就OK了。
页面很多就写一个宏命令。不会的话有录制,录制提取一个,然后写一个循环。
作为码农,就不用细说了吧,我觉得应该没问题。(微笑中透露着疲惫)