用ASP取出HTML里面的图片地址的函数主要原理就是用正则判断的属性。这在采集程序中将非常有用。

函数如下:

以下是引用片段:

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("
")
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

  

最新文章

  1. SQL Server中TOP子句可能导致的问题以及解决办法
  2. 按钮button的css样式(扁平化底色)
  3. xib的UIScrollView自适应高度
  4. Codeforces Round #379 (Div. 2) F. Anton and School
  5. ES6新特性之模板字符串
  6. Druid监控Mybatis不显示SQL问题
  7. 3D Touch介绍:电子秤App与快捷操作
  8. win10 mac地址修改器
  9. ubuntu第一次设置root密码
  10. 【linux kernel】 中断处理-中断上半部
  11. 两种数据传输的方式——get和post。
  12. mxnet:结合R与GPU加速深度学习
  13. 【LSGDOJ 2015】数页码
  14. DBA_TABLES ALL_TABLES USER_TABLES
  15. Go语言数组和切片的原理
  16. ImportError: cannot import name &#39;Process&#39; from &#39;multiprocessing&#39;
  17. 深入剖析ThreadLocal实现原理以及内存泄漏问题
  18. 【漏洞公告】高危:Windows系统 SMB/RDP远程命令执行漏洞
  19. 停止一个java的线程执行
  20. docker(二)部署docker容器虚拟化平台

热门文章

  1. jetty上传 Form too large: 275782 &gt; 200000
  2. JDBC 的基本步骤
  3. 关于JavaScripting API您不知道的5件事
  4. 转载 SharePoint 2013配置Master Page and Page Layout
  5. 【PAT Advanced Level】1004. Counting Leaves (30)
  6. android视频播放心得体会
  7. 前端 - 使用gulp搭建es6运行环境
  8. 重金悬赏的微软:提交Win8漏洞以及发布Win8应用
  9. Struts2中的session、request、respsonse获取方法
  10. 解决ecshop在线客户点击无法唤醒QQ问题