当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用ASP取出HTML里面的图片地址的函数

ASP
超级ASP版DataGrid:SkyGrid本地下载
用QuickWAP组件结合ASP建设Wap站点
ASP中取得图片宽度和高度的类(无组件)
在ASP处理程序时显示进度
结合FSO操作和Aspjpeg组件写的Class
asp实现的7xi音乐网的采集源代码
用asp+xmlhttp编写web采集程序
推荐ASP超速入门视频教程
关于“未指定的错误”的问题 的比较正解的解决方法
用asp脚本实现限制IP访问
aspupload 3.0 下载与使用集锦
[教程+分享]具有良好体验度的Web注册系统
asp 实现视频显示的效果函数
asp实现图片右键滑轮控制大小的函数
彻底掌握ASP分页技术杂谈
aspupload文件重命名及上传进度条的解决方法附代码
ASPJPEG综合操作的CLASS类
asp通用采集函数冗余版可以保存文件到本地
使用ODBC数据库管理Serv-U的FTP用户及相关ASP编程[附源码示例下载]
[asp]阿里西西的alexa采集效果代码

用ASP取出HTML里面的图片地址的函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 237 ::
收藏到网摘: n/a

用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