asp使用正则自动解析图片地址并保存(2)
发布时间:2007-08-17 11:29:00
标签:正则,正则表达式,图片,远程,xml
二、下载图片并保存在服务器上
首先使用xmlhttp的方法来获得图片的内容
function getHTTPPage(url)
on error resume next
dim http
set http=server.createobject("MSXML2.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
%>


猜你喜欢
- 有时候我们用的一些pdf资料是没有目录的,这样找寻我们想到的东西比较麻烦。本篇文章就为大家带来python来生成pdf目录书签的方法。首先,
- 为什么程序员都喜欢黑php?如果php经常被人黑,反而是好事!世界上只有两种语言: 没人用的和经常被人喷的。不管你喷也好,黑也好,骂也好,都
- 原理:TensorFlow使用的求导方法称为自动微分(Automatic Differentiation),它既不是符号求导也不是数值求导,
- 解决方法一:使用python的BeautifulSoup来抓取网页然后输出网页标题,但是输出的总是乱码,找了好久找到解决办法,下面分享给大家
- 往期学习:python数据类型: python数据结构:数据类型.python的输入输出: python数据结构之输入输出及控制和异常.py
- 昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的啊。难道忘了DELET
- 生活中我们为了保障房间里物品的安全,所以给门进行上锁,在我们需要进入房间的时候又会重新打开。同样的之间我们讲过多线程中的lock,作用是为了
- Series对象和DataFrame的列数据提供了cat、dt、str三种属性接口(accessors),分别对应分类数据、日期时间数据和字
- 背景:我们有一个用go做的项目,其中用到了zmq4进行通信,一个简单的rpc过程,早期远端是使用一个map去做ip和具体socket的映射。
- eval()函数常被称为评估函数,它的功能是去掉参数最外侧引号,变成python可执行的语句,并执行语句的函数。1 eval函数的简介和语法
- 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分。其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语
- 实现功能:删除当前目录下,除保留目录和文件外的所有文件和目录#!bin/env pythonimport osimport os.pathi
- 本文实例讲述了Python多进程原理与用法。分享给大家供大家参考,具体如下:进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了
- 首先要挂代理,但是还不够,pycharm默认不使用代理,需要进行设置找到代理软件的HTTP代理地址,将地址和端口填入设置中即可来源:http
- 本文实例讲述了Python使用matplotlib和pandas实现的画图操作。分享给大家供大家参考,具体如下:画图在工作再所难免,尤其在做
- 方法一.Image { max-width:600px;height:
- 1.基数排序基数排序的基本思想是先将数字按照个位数上数字的大小进行排序,排序之后再将已经排过序的数字再按照十位数上数字的大小进行排序,依次推
- EasyUI 简介easyui是一种基于jQuery的用户界面插件集合。easyui为创建现代化,互动,JavaScript应用程序,提供必
- 一、运算符 . [] () 属性存取及函数调用 delete new typeof + - ! 一元运算符 * / % 乘法,除法,取模 +
- AjaxUpload.js文件的代码,供大家参考,具体内容如下/** * AJAX Upload ( http://valums.com/