用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.readystate<>4 then
  exit function
  end if
  getHTTPPage=Http.responseBody
  set http=nothing
  if err.number<>0 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
%>

(0)

相关推荐

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

    一,取得原页中的图片的地址. <%function PicStr(str) Set objRegExp = New Regexp '设置配置对象 objRegExp.IgnoreCase = True '忽略大小写 objRegExp.Global = True '设置为全文搜索 objRegExp.Pattern = "<IMG.+?>" '为了确保能准确地取出图片地址所以分为两层配置:首先找到里面的<IMG>标签,然后再取出里面的图片地址后面的geti

  • IE中直接运行显示当前网页中的图片 推荐

    jb51修正版使用方法直接在已打开网页的IE地址栏中输入即可1.显示网页中的所有图片 复制代码 代码如下: javascript:s='';for (i=0;i<document.images.length;i++){s+='<img src='+document.images[i].src+'><br>'};if(s!=''){document.write('<center>'+s+'</center>');void(document.close()

  • python使用正则表达式分析网页中的图片并进行替换的方法

    本文实例讲述了python使用正则表达式分析网页中的图片并进行替换的方法.分享给大家供大家参考.具体分析如下: 这段代码分析网页中的所有图片表单<img>,分析后为其前后添加相应的修饰标签,并添加到图片的超级链接. 复制代码 代码如下: result = value.replace("[ page ]","").replace('  ',u' ') p=re.compile(r'''(<img\b[^<>]*?\bsrc[\s\t\r\

  • 网页中的图片查看器viewjs使用方法

    需求分析: 对于网页中的图片进行连续放大(便于用户清晰查看内容).缩小,旋转等操作,可以使用viewjs图片查看器插件实现. viewjs官方网址:https://github.com/fengyuanchen/viewerjs 具体使用方法请参照官网说明. 下面做2个简单的示例: 1.示例一:单一图片 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"

  • django之静态文件 django 2.0 在网页中显示图片的例子

    小白,有错的地方,希望大家指正~ 使用的是django2.0 python3.6 1.首先,要在settings.py中设置 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR,'media/') 2.url.py中,在加入 from django.conf.urls.static import static from . import settings urlpatterns = [ path('admin/', admin.sit

  • 利用Java实现解析网页中的内容

    目录 一.题目描述 二.解题思路 三.代码详解 一.题目描述 题目实现:做一个解析指定网址的网页内容小应用. 二.解题思路 创建一个类:InternetContentFrame,继承JFrame窗体类. 定义一个getURLCollection()方法:用于解析网页内容 使用URLConnection类的getInputStream()方法 获取网页资源的输入流对象. 三.代码详解 InternetContentFrame package com.xiaoxuzhu; import java.a

  • C#通过正则表达式实现提取网页中的图片

    目前在做项目中有处理图片的部分,参考了一下网上案例,自己写了一个获取内容中的图片地址的方法. 一般来说一个 HTML 文档有很多标签,比如"<html>"."<body>"."<table>"等,想把文档中的 img 标签提取出来并不是一件容易的事.由于 img 标签样式变化多端,使提取的时候用程序寻找并不容易.于是想要寻找它们就必须写一个非常健全的正则表达式,不然有可能会找得不全,或者找出来的不是正确的 im

  • Python爬虫爬取一个网页上的图片地址实例代码

    本文实例主要是实现爬取一个网页上的图片地址,具体如下. 读取一个网页的源代码: import urllib.request def getHtml(url): html=urllib.request.urlopen(url).read() return html print(getHtml(http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E5%A3%81%E7%BA%B8&ct=201326592&am

  • php采集内容中带有图片地址的远程图片并保存的方法

    本文实例讲述了php采集内容中带有图片地址的远程图片并保存的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: function my_file_get_contents($url, $timeout=30) {  if ( function_exists('curl_init') )   {   $ch = curl_init();   curl_setopt ($ch, curlopt_url, $url);   curl_setopt ($ch, curlopt_retu

  • Vue 中对图片地址进行拼接的方法

    拿到一组数据,其中的img地址是这样的 我们想要将它转化为正常的图片地址,需要使用for循环来将图片拼接起来 getSingList(){ getSingerList().then((res) =>{ if (res.code==ERR_ok){ this.singers=res.data.list console.log(this.singers) for(var i=0;i<this.singers.length;i++){ this.singers[i].Fsinger_mid='//y

随机推荐