ASP网站数据采集程序制作:一个采集入库生成本地文件的几个FUCTION(可用来生成HTML静态网页)

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 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

   fldr=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=""

 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 = strpath

End function

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值