ASP網站數據採集程序製做:一個採集入庫生成本地文件的幾個FUCTION(可用來生成HTML靜態網頁)2008-09-01 08:57'app
1:SaveFiles(byref from,byref tofile)
'做用 :利用流保存文件
' 參數 :from(遠程文件地址),tofile(保存文件位置)ide
'2:IsExists(byref filespec)
'做用 :利用fso檢測文件是否存在,存在返回true,不存在返回false
' 參數 :filespes(文件位置)函數
'3:IsFolder(byref Folder)
'做用 :利用fso檢測文件夾是否存在,存在返回true,不存在返回false
' 參數 :folder(文件夾位置)網站
'4:CreateFolder(byref fldr)
'做用 :利用fso建立文件夾
' 參數 :fldr(文件夾位置)編碼
'5:SaveData(byref FromUrl,byref ToFiles)
'做用 :保存文件,並自動建立多級文件夾
' 參數 :fromurl(遠程文件地址),tofiles (保存位置)url
'6:GetData(byref url,byref GetMode)
'做用 :取得遠程數據
' 參數 :url(遠程文件地址),getmode (模式:0爲二進制,1爲中文編碼)spa
'7:FormatImgPath(byref ImgUrl,byref ImgFolder,byref FristName,byref noimg)
'做用 :格式化遠程圖片地址爲本地位置
' 參數 :imgurl(遠程圖片地址),imgfolder (本地圖片目錄),fristname(加入的前綴名稱)orm
'有了以上這7個函數,你就能夠作一個簡單的網站數據採集程序了,下面貼出實現的詳細代碼.
server
- '*****************************************************************
- ' function
- ' 做用 :利用流保存文件
- ' 參數 :from(遠程文件地址),tofile(保存文件位置)
- '*****************************************************************
- Private Function SaveFiles(byref from,byref tofile)
- Dim Datas
- Datas=GetData(from,0)
- Response.Write "保存成功:<font color=red>"&formatnumber(len(Datas)/1024*2,2)&"</font>Kb"
- response.Flush
- if formatnumber(len(Datas)/1024*2,2)>1 then
- ADOS.Type = 1
- ADOS.Mode =3
- ADOS.Open
- ADOS.write Datas
- ADOS.SaveToFile server.mappath(tofile),2
- ADOS.Close()
- else
- Response.Write "保存失敗:<font color=red>文件大小"&formatnumber(len(imgs)/1024*2,2)&"Kb,小於1K</font>"
- response.Flush
- end if
- end function
- '*****************************************************************
- ' function(私有)
- ' 做用 :利用fso檢測文件是否存在,存在返回true,不存在返回false
- ' 參數 :filespes(文件位置)
- '*****************************************************************
- Private Function IsExists(byref filespec)
- If (FSO.FileExists(server.MapPath(filespec))) Then
- IsExists = True
- Else
- IsExists = False
- End If
- End Function
- '*****************************************************************
- ' function(私有)
- ' 做用 :利用fso檢測文件夾是否存在,存在返回true,不存在返回false
- ' 參數 :folder(文件夾位置)
- '*****************************************************************
- Private Function IsFolder(byref Folder)
- If FSO.FolderExists(server.MapPath(Folder)) Then
- IsFolder = True
- Else
- IsFolder = False
- End If
- End Function
- '*****************************************************************
- ' function(私有)
- ' 做用 :利用fso建立文件夾
- ' 參數 :fldr(文件夾位置)
- '*****************************************************************
- Private Function CreateFolder(byref fldr)
- Dim f
- Set f = FSO.CreateFolder(Server.MapPath(fldr))
- CreateFolder = f.Path
- Set f=nothing
- End Function
- '*****************************************************************
- ' function(公有)
- ' 做用 :保存文件,並自動建立多級文件夾
- ' 參數 :fromurl(遠程文件地址),tofiles (保存位置)
- '*****************************************************************
- Public Function SaveData(byref FromUrl,byref ToFiles)
- ToFiles=trim(Replace(ToFiles,"//","/"))
- flName=ToFiles
- fldr=""
- If IsExists(flName)=false then
- GetNewsFold=split(flName,"/")
- For i=0 to Ubound(GetNewsFold)-1
- if fldr="" then
- fldr=GetNewsFold(i)
- else
- fldrfldr=fldr&""&GetNewsFold(i)
- end if
- If IsFolder(fldr)=false then
- CreateFolder fldr
- End if
- Next
- SaveFiles FromUrl,flName
- End if
- End function
- '*****************************************************************
- ' function(公有)
- ' 做用 :取得遠程數據
- ' 參數 :url(遠程文件地址),getmode (模式:0爲二進制,1爲中文編碼)
- '*****************************************************************
- Public Function GetData(byref url,byref GetMode)
- 'on error resume next
- SourceCode = OXML.open ("GET",url,false)
- OXML.send()
- if OXML.readystate<>4 then exit function
- if GetMode=0 then
- GetData = OXML.responseBody
- else
- GetData = BytesToBstr(OXML.responseBody)
- end if
- if err.number<>0 then err.Clear
- End Function
- '*****************************************************************
- ' function(公有)
- ' 做用 :格式化遠程圖片地址爲本地位置
- ' 參數 :imgurl(遠程圖片地址),imgfolder (本地圖片目錄),fristname(加入的前綴名稱)
- '*****************************************************************
- Public Function FormatImgPath(byref ImgUrl,byref ImgFolder,byref FristName,byref noimg)
- strpath=""
- ImgUrlImgUrl=ImgUrl
- if instr(ImgUrl,"Nophoto") or lenb(GetData(ImgUrl,0))<=0 then
- strpath=noimg
- Response.Write "<a href="&strpath&">"&strpath&"</a>" &vbcrlf
- else
- if Instr(ImgUrl,".asp") then
- strpath=FristName&"_"&Mid(ImgUrl, InStrRev(ImgUrl, "=")+1)&".jpg"
- else
- strpath=FristName&"_"&Mid(ImgUrl, InStrRev(ImgUrl, "/")+1)
- end if
- strpath = ImgFolder&"/"&strpath
- strpath = Replace(strpath,"//","/")
- if left(strpath,1)="/" then strpath=right(strpath,len(strpath)-1)
- strpath = trim(strpath)
- Response.Write "<a href="&strpath&">"&strpath&"</a>" &vbcrlf
- savedata ImgUrl,strpath
- end if
- FormatImgPath = strpath
- End function