资深而专注的洛阳网站建设专家域名空间多媒体设计中心博易网软件开发Jsp空间   郑州北京洛阳上海深圳广州Englishwap网站
ASP取出HTML里面的图片地址的函数
作者: 出处:
加入时间:2008-5-21 9:03:21 点击数:672次         自动滚屏(右键暂停)

以下是取出HTML里面的图片地址的函数:
  
  主要原理就是用正则判断 <img> 的<src>属性。这在采集程序中将非常有用。
  
  函数如下:
  
  以下是引用片段:
  Function ShowPic(str)
   Set objRegExp = New Regexp'设置配置对象
   objRegExp.IgnoreCase = True'忽略大小写
   objRegExp.Global = True'设置为全文搜索
   objRegExp.Pattern = "<img.+?>"
   '为了确保能准确地取出图片地址所以分为两层配置:首先找到里面的<img>标签,然后再取出里面的图片地址后面的getimgs函数就是实现后一个功能的。
   strs=trim(str)
   Set Matches =objRegExp.Execute(strs)'开始执行配置
   For Each Match in Matches
   RetStr = RetStr &getimgs( Match.Value )'执行第二轮的匹配
   Next
   ShowPic = RetStr
  End Function
  Function getimgs(str)
   getimgs=""
   Set objRegExp1 = New Regexp
   objRegExp1.IgnoreCase = True
   objRegExp1.Global = True
   objRegExp1.Pattern = "http://.+?"""'取出里面的地址
   set mm=objRegExp1.Execute(str)
   For Each Match1 in mm
   getimgs=getimgs&left(Match1.Value,len(Match1.Value)-1)&"||"'把里面的地址串起来备用
   next
  End Function
  '取得图片内容
  function getHTTPPage(url)
   on error resume next
   dim http
   set http=server.createobject("MSXML2.XMLHTTP")'使用xmlhttp的方法来获得图片的内容
   Http.open "GET",url,false
   Http.send()
   if Http.readystate<>4 then
   exit function
   end if
   getHTTPPage=Http.responseBody
   set http=nothing
   if err.number<>0 then err.Clear
  end function
  '保存图片
  function saveimage(from,tofile)
   dim geturl,objStream,imgs
   geturl=trim(from)
   imgs=gethttppage(geturl)'取得图片的具休内容的过程
   Set objStream = Server.CreateObject("ADODB.Stream")'建立ADODB.Stream对象,必须要ADO 2.5以上版本
   objStream.Type =1'以二进制模式打开
   objStream.Open
   objstream.write imgs'将字符串内容写入缓冲
   objstream.SaveToFile server.mappath(tofile),2'-将缓冲的内容写入文件
   objstream.Close()'关闭对象
   set objstream=nothing
  end function
  
  '调用实例
  Dim strpic,i,fname
  strpic = ShowPic("<DIV align=center><IMG src=""http://web.chinaitlab.com/UploadFiles_5817/200712/20071206171858495.gif"" border=0></DIV>")
  strpic = Split(strpic,"||")
  If UBound(strpic) > 0 Then
   For i = 0 To UBound(strpic) - 1
   '保存图片
   fname=cstr(i&mid(strpic(i),instrrev(strpic(i),".")))
   saveimage(strpic(i),fname)
   Next
  Else
  End If

  • 上一篇: 用ASP程序实现网站在线人数统计
  • 下一篇: 教你优化你的ASP程序
  •  
    © 2008   正达网讯  All Rights Reserved.