ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)
看着一个又一个网站系统里都带了采集功能模块,让我心动,很想让自己做的网站里也带个采集模块,可惜一直都不知道如何下手,现在有了这几个函数,你也可以制作出自己的采集程序,而且可以利用这样的原理来生成HTML静态网页.
本文里介绍采集程序的方法分成以下几个函数来实现:
1:SaveFiles(byref from,byref tofile)作用 :利用流保存文件' 参数 :from(远程文件地址),tofile(保存文件位置)
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 (保存位置)
6:GetData(byref url,byref GetMode) 作用 :取得远程数据' 参数 :url(远程文件地址),getmode (模式:0为二进制,1为中文编码)
7:FormatImgPath(byref ImgUrl,byref ImgFolder,byref FristName,byref noimg)作用 :格式化远程图片地址为本地位置' 参数 :imgurl(远程图片地址),imgfolder (本地图片目录),fristname(加入的前缀名称)
有了以上这7个函数,你就可以做一个简单的网站数据采集程序了,下面贴出实现的详细代码.
'*****************************************************************' 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 ifend function'*****************************************************************' function(私有)' 作用 :利用fso检测文件是否存在,存在返回true,不存在返回false' 参数 :filespes(文件位置)'*****************************************************************Private Function IsExists(byref filespec) If (FSO.FileExists(server.MapPath(filespec))) Then IsExists = True Else IsExists = False End IfEnd Function
'*****************************************************************' function(私有)' 作用 :利用fso检测文件夹是否存在,存在返回true,不存在返回false' 参数 :folder(文件夹位置)'*****************************************************************Private Function IsFolder(byref Folder) If FSO.FolderExists(server.MapPath(Folder)) Then IsFolder = True Else IsFolder = False End IfEnd Function
'*****************************************************************' function(私有)' 作用 :利用fso创建文件夹' 参数 :fldr(文件夹位置)'*****************************************************************Private Function CreateFolder(byref fldr) Dim f Set f = FSO.CreateFolder(Server.MapPath(fldr)) CreateFolder = f.Path Set f=nothingEnd 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 fldr=fldr&"\"&GetNewsFold(i) end if If IsFolder(fldr)=false then CreateFolder fldr End if Next SaveFiles FromUrl,flName End ifEnd 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.ClearEnd Function
'*****************************************************************' function(公有)' 作用 :格式化远程图片地址为本地位置' 参数 :imgurl(远程图片地址),imgfolder (本地图片目录),fristname(加入的前缀名称)'*****************************************************************Public Function FormatImgPath(byref ImgUrl,byref ImgFolder,byref FristName,byref noimg) strpath="" ImgUrl=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 = strpathEnd function
转载于:https://www.cnblogs.com/webman/archive/2008/01/11/1034778.html