多功能采集类

2009年05月16号  |  14:44分类:asp技术  |  212 views

采集小偷,虽然不光彩,却也为广大垃圾站长所青睐。其实,普通的踏踏实实做站的朋友,也在不断的用小偷,比如天气预报小偷,就是很人性化的一种做法。
好,我们来看多功能采集类。

下载: caiji.asp
  1. < %
  2. '=============================
  3. ' Script Written by LZ8.飞狼
  4. ' Copyright (C) 2004
  5. ' Oicq: 23481045
  6. ' Email: pzflcom@163.com
  7. ' 如采用本类模块,请不要去掉这个说明,此处不会引响你的执行速度。
  8. ' 作用:小偷通用类,利用此类可以截取网络上文字,图片,Flash,音乐等
  9. ' 原理:这里所说的;小偷”指的是在ASP中运用XML中的XMLHTTP组件提供的强大功能,
  10. ' 把远程网站上的数据(图片,网页及其他文件)抓取到本地,经过各种处理
  11. ' 后存储在本地机上或显示到页面上或者存储进数据库的一类程序。
  12. '=============================
  13. Class BizsuCut
  14. private MHttp,Fso,objStream,localaddr,localdir,strReturn,objRegExp,strMatchTemp,DSaved,strBodyTemp
  15. private strFile,blnErr,strErr(4),strFileExt
  16. Public Version,ReExt,ReName,DefExt
  17. '*********************************************
  18. 'Version:版本信息
  19. 'ReExt:是否要更改文件存储格式。
  20. 'ReName:是否要更改文件名。如将文件名;dog.gif”改为;当时时刻_随机数产生的文件名+扩展名”(20041107182512_12354.gif)的形式
  21. 'DefExt:默认文件格式
  22. '*********************************************
  23. '类的方法
  24. 'Down(strStart,strEnd,strLocalPath)主调用程序
  25. 'CreateDIR(strLocalPath)建立目录,如果有多级目录,则一级一级的创建,如可创建C:\WWWROOT\Bizsu\Bizsu\Bizsu\...文件夹
  26. 'strNewName(strFile,ReName)获得新的文件名
  27. 'getFileName(strFile)由路径获得文件名.如getFileName("C:\WWWROOT\Bizsu\Bizsu\bizsu.swf")得到"bizsu.swf"
  28. 'ReFileExt(strNewName,strFileExt,ReExt)更改文件存储格式.如原文件为;dog.gif”可改为;dog.jpg”
  29. 'FormatPath(strPath)将路径中的"\"改为 "/"
  30. 'CutStr(strStart,strEnd)按指定首尾字符串对偷取的内容进行裁减,参数分别是首字符串,尾字符串
  31. '如要截取〈title〉************〈/title〉中"*"中的内容,则strStart="〈title〉" strEnd="〈/title〉"
  32. 'BytesToBstr(strBody)二进制转成字符
  33. 'getFile(url,blnIsWhole)获取文件流
  34. 'SaveFile(strFrom,strTo)存储文件
  35. 'GetfileExt(filename)获得文件扩展名
  36. 'setAutoFileName(strFile)根据当时时间和随机数自动生成文件名
  37. '***************************************
  38. Private Sub Class_Initialize()'程序初始化,创建各实例
  39. Server.ScriptTimeOut=9999999
  40. set MHttp=Server.createobject("Msxml2.XMLHTTP")
  41. Set objstream = Server.CreateObject("Adodb.Stream")
  42. Set Fso = Server.CreateObject("Scripting.FileSystemObject")
  43. Version="BizsuCut Version 1.0"
  44. Set objRegExp = New Regexp
  45. strBodyTemp=""
  46. strFile=""
  47. strErr(0)=""
  48. strErr(1)="字符串切割错误"
  49. strErr(2)="保存文件时发生错误"
  50. strErr(3)="创建目录失败,请检查目录权限"
  51. End Sub
  52.  
  53. Private Sub Class_Terminate()
  54. Set MHttp = nothing
  55. Set objstream = nothing
  56. Set Fso = nothing
  57. Set objRegExp = nothing
  58. End Sub
  59.  
  60. Public Function CreateDIR(LocalPath)'建立目录,如果有多级目录,则一级一级的创建,如可创建C:\WWWROOT\Bizsu\Bizsu\Bizsu\...文件夹
  61. On Error Resume Next
  62. LocalPath = FormatPath(LocalPath)
  63. arrPath= Split(LocalPath, "/")
  64. intPathLevel= UBound(arrPath)
  65. For I = 0 To intPathLevel
  66. If I = 0 Then:arrPathTemp = arrPath(0) & "/":Else: arrPathTemp = arrPathTemp & arrPath(I) & "/"
  67. strNowPath = Left(arrPathTemp, Len(arrPathTemp) - 1)
  68. If Not Fso.FolderExists(strNowPath) Then Fso.CreateFolder strNowPath
  69. Next
  70. putErr(3)
  71. End Function
  72.  
  73. Public Function CreateSysFile(LocalPath,sysFileExt)
  74. pathTemp=LocalPath&"\"&GetRndStr(90000,100000)&"."&sysFileExt
  75. Set fsoFile=fso.createTextFile(pathTemp,1)
  76. End Function
  77.  
  78. Public Function GetFile(RemotePath)
  79. 'On error resume next
  80. MHttp.open "GET",RemotePath,false
  81. MHttp.send()
  82. if MHttp.readystate〈〉4 then exit function
  83. GetFile=MHttp.responseBody
  84. putErr(3)
  85. End Function
  86.  
  87. Public Function BytesToBstr(strBody)
  88. objstream.Type = 1
  89. objstream.Mode =3
  90. objstream.Open
  91. objstream.Write strBody
  92. objstream.Position = 0
  93. objstream.Type = 2
  94. objstream.Charset = "GB2312"
  95. BytesToBstr = objstream.ReadText
  96. objstream.CLOSE
  97. End Function
  98.  
  99. Public Function CutStr(strBody,strStart,strEnd)
  100. On Error Resume Next
  101. intStart=Instr(strBody,strStart)
  102. intEnd=Instr(intStart+1,strBody,strEnd)
  103. TmpStr=Mid(strBody,intStart+Len(strStart),intEnd-intStart-Len(strStart))
  104. CutStr=tmpstr
  105. putErr(3)
  106. End Function
  107.  
  108.  
  109.  
  110. private Function GetRndStr(strMin,strMax)
  111. Randomize
  112. ranNum = Int(strMin * Rnd) + strMax
  113. TNow=Now()
  114. strDate=Year(TNow)&Month(TNow)&Day(TNow)&Hour(TNow)&Minute(TNow)&Second(TNow)&"_"&ranNum
  115. GetRndStr=strDate
  116. End Function
  117.  
  118. Public Function putErr(errNum)
  119. If Err Then
  120. MSG strErr(errNum)
  121. Err.Clear
  122. End If
  123. End Function
  124.  
  125. Public Function MSG(strMSG)
  126. Response.Write strMSG
  127. END Function
  128.  
  129. Private Function Formatstr(strBody,strOld,strNew)
  130. Formatstr=Replace(strPath,strOld,strNew)
  131. End function
  132.  
  133. End class
  134. %>
喜欢本文,那就收藏到: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
  • 暂无相关日志

发表您的评论

您必须 登录 才能发表评论。