ASP下載網(wǎng)頁內(nèi)的圖片實(shí)例分享
本文是關(guān)于ASP下載網(wǎng)頁內(nèi)的圖片的實(shí)例分享,希望對(duì)能給大家?guī)韼椭蛦l(fā)。
<%
Function ReplaceRemoteUrl(sHTML, sSaveFilePath, sFileExt)
'//
'//遠(yuǎn)程保存圖片
'/////////////////////////////////////////////////////
'作 用:替換字符串中的遠(yuǎn)程文件為本地文件并保存遠(yuǎn)程文件
'參 數(shù):
' sHTML : 要替換的字符串
' sSavePath : 保存文件的路徑
' sExt : 執(zhí)行替換的擴(kuò)展名
Dim s_Content
s_Content = sHTML
'If IsObjInstalled("Microsoft.XMLHTTP") = False then
'ReplaceRemoteUrl = s_Content
' Exit Function
' End If
'遠(yuǎn)程圖片保存目錄,結(jié)尾請(qǐng)不要加“/”
SaveFilePath="/upload"
'遠(yuǎn)程圖片保存類型
FileExt="jpg|gif|bmp|png"
Dim re, RemoteFile, RemoteFileurl,SaveFileName,SaveFileType,arrSaveFileNameS,arrSaveFileName,sSaveFilePaths
Set re = new RegExp
re.IgnoreCase = True
re.Global = True
re.Pattern = "((http|https|ftp|rtsp|mms):(\/\/|\\\\){1}((\w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(\S*\/)((\S)+[.]{1}(" & sFileExt & ")))"
's_Content="http://union.3721.com/v2/images/sicon.gif sfsdf"
response.write s_Content
Set RemoteFile = re.Execute(s_Content)
For Each RemoteFileurl in RemoteFile
SaveFileType = Replace(Replace(RemoteFileurl,"/", "a"), ":", "a")
'arrSaveFileName = Right(SaveFileType,12)
arrSaveFileName = Mid(RemoteFileurl,InStrRev(RemoteFileurl, "/")+1)
sSaveFilePaths=sSaveFilePath & "/"
SaveFileName = sSaveFilePaths & arrSaveFileName
Call SaveRemoteFile(SaveFileName, RemoteFileurl)
s_Content = Replace(s_Content,RemoteFileurl,SaveFileName)
Next
ReplaceRemoteUrl = s_Content
End Function
Sub SaveRemoteFile(LocalFileName,RemoteFileUrl)
Dim Ads, Retrieval, GetRemoteData
On Error Resume Next
Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", RemoteFileUrl, False, "", ""
.Send
GetRemoteData = .ResponseBody
End With
Set Retrieval = Nothing
Set Ads = Server.CreateObject("Adodb.Stream")
With Ads
.Type = 1
.Open
.Write GetRemoteData
.SaveToFile Server.MapPath(LocalFileName), 2
.Cancel()
.Close()
End With
Set Ads=nothing
End Sub
Server.ScriptTimeOut=6000 '頁面超時(shí)時(shí)間
url="http://www.webjx.com/htmldata/2006-02-20/1140402873.html"'接收的網(wǎng)址
code=replace(getHTTPPage(url),vbcrlf,"")'替換掉代碼中的 回車符
start=Instr(code,"<html>")'開始的代碼 這里取網(wǎng)頁中有唯一性質(zhì)的 代碼開始
over=Instr(code,"</html>")'結(jié)束的代碼 這里取網(wǎng)頁中有唯一性質(zhì)的 代碼結(jié)束
types=mid(code,start,over-start) 'types 變量就是你需要的部分
'//這里應(yīng)該繼續(xù)對(duì)取得后的代碼做休整 以便符合自己需要
'//我才取的是從<html>到</html> 所以是讀整個(gè)頁面 實(shí)際上根據(jù)自己需要查看人家的代碼 對(duì)照下
'//實(shí)際上還需要一些其他的函數(shù) 比如整理HTML標(biāo)志符的函數(shù), 自動(dòng)接收遠(yuǎn)程圖片的函數(shù)
'//還有就是頁面的自動(dòng)跳轉(zhuǎn)等 == 這個(gè)就看自己的擴(kuò)展了
types=ReplaceRemoteUrl(types,SaveFilePath,FileExt)//下載遠(yuǎn)程圖片
response.write types ' 測(cè)試輸出
'下邊的函數(shù)不用管, 包括 打開,讀取,網(wǎng)頁
Function getHTTPPage(Path)
t = GetBody(Path)
getHTTPPage=BytesToBstr(t,"GB2312")
End function
Function GetBody(url)
on error resume next
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", url, False, "", ""