用asp自动解析网页中的图片地址

flytong99sea

flytong99sea

2016-02-19 12:30

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享用asp自动解析网页中的图片地址,希望可以对大家能有小小的帮助。
一,取得原页中的图片的地址。 %
function PicStr(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
 PicStr = PicStr &getimgs( Match.Value ) '执行第二轮的匹配
 Next
 '所有的图片在里面都是这样的src="http://图片的地址",所以可以这样来取得确切的图片地址
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.readystate4 then
  exit function
  end if
  getHTTPPage=Http.responseBody
  set http=nothing
  if err.number0 then err.Clear
end function
'取得了图片的内容要保存,给人一种感觉是用FSO来作就可以了,但实际上不行,这样保存程序就会出错,因为FSO不支持流式的文件,所以我们要调用另一个对象:ADO.STREM。具体的过程如下:
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

'所以只要用一个循环来把刚才取得的地址中的图片全部保存下来,具体过程如下:
arrimg=split(PicStr(str),"||") '分割字串,取得里面地址列表
allimg=""
newimg=""
for i=1 to ubound(arrimg)
if arrimg(i)"" and instr(allimg,arrimg(i))1 then '看这个图片是否已经下载过
fname=baseurl&cstr(i&mid(arrimg(i),instrrev(arrimg(i),".")))
saveimage(arrimg(i),fname)‘保存地址的函数,过程见上面
allimg=allimg&"||"&arrimg(i) '把保存下来的图片的地址串回起来,以确定要替换的地址
newimg=newimg&"||"&fname '把本地的地址串回起来
end if
next
'第三步就是替换原来的地址了。具体的过程就是下面了:
arrnew=split(newimg,"||") '取得原来的图片地址列表
arrall=split(allimg,"||") '取得已经保存下来的图片的地址列表
for i=1 to ubound(arrnew) '执行循环替换原来的地址
  strs=replace(strs,arrall(i),arrnew(i))
next
%
展开更多 50%)
分享

猜你喜欢

用asp自动解析网页中的图片地址

Web开发
用asp自动解析网页中的图片地址

用asp解析图片地址 并将其保存

ASP
用asp解析图片地址 并将其保存

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

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

Web开发
ASP取出HTML里面的图片地址的函数

用XMLHTTP组件正确解析图片地址并将其保存

ASP
用XMLHTTP组件正确解析图片地址并将其保存

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用正则解析图片地址,并利用XMLHTTP组件将其保存

ASP
用正则解析图片地址,并利用XMLHTTP组件将其保存

ASP如何获得代码中第一张图片地址

Web开发
ASP如何获得代码中第一张图片地址

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

为什么在存储过程中用OLEDB方式不能返回记录集

为什么在存储过程中用OLEDB方式不能返回记录集

冥 之 生 死 忘 川 不 渡 - QQ图案分组

冥 之 生 死 忘 川 不 渡 - QQ图案分组
下拉加载更多内容 ↓