使用用ASP自动解析网页中的图片地址的方法
一,取得原页中的图片的地址。 <% function PicStr(str) Set objRegExp = New Regexp '设置配置对象 objRegExp.IgnoreCase = True '忽略大小写 o...
一,取得原页中的图片的地址。
<%
function PicStr(str)
Set objRegExp = New Regexp '设置配置对象
objRegExp.IgnoreCase = True '忽略大小写
objRegExp.Global = True '设置为全文搜索
objRegExp.Pattern = "
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
%>
-
ASP编程中Session对象失效的客户端解决方法
虽然利用Timeout属性释放资源的策略是出于保护服务器的目的,但是Session对象不可预知的失效性,却成为开发应用程序的一个弊病。因而在实际应用程序的开发中,必须解决Session对象失效的问题。...
-
利用ASP发送和接收XML数据的处理方法
因为要做移动梦网WAP的一些接口,所以要用到这种方式,这个是ASP版本的,利用了MSXML2.XMLHTTP对像,利用这种方法,ASP里调用Servlet或Web Service都是很轻松的!...
-
使用ASP开发网页需要牢记的9个注意事项
永远不要相信用户输入的内容具有适当的大小或者包含适当的字符。在使用其做出决策之前应该始终对用户输入进行验证。最佳的选择是创建一个 COM+ 组件,...
-
ASP实现限制一个ip只能访问一次的方法
文章主要介绍了asp实现限制一个ip只能访问一次的方法,感兴趣的小伙伴们可以参考一下限制一个ip只能访问一次,现在将asp代码分享给大家: <% '////////////////////////////...
-
ASP程序中常使用的几种脚本语言
在浏览器中通过查看源代码的方式是无法看到ASP源代码的,你只能看到由ASP文件输出的结果,而那些只是纯粹的HTML而已。这是因为,在结果被送回浏览器前,脚本已经在服务器执行了。实...
-
Asp.net web.config customErrors设置详解
文章主要介绍了详解Asp.net web.config customErrors 如何设置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...
-
关于ASP程序中常见的几种脚本语言介绍
相信很多程序员对于ASP都并不陌生反而很熟悉了,毕竟作为一款简单又十分容易维护的动态服务器页面ASP是相当受欢迎的。平时不是很经常接触编程方面的朋友对于ASP的了解就...
-
腾讯大股东Naspers成立OTT视频部门 迎战Netflix
腾讯大股东Naspers视频娱乐分部新成立了OTT视频部门,目的是对抗来自Netflix等全球视频服务巨头的激烈竞争。...
-
腾讯大股东Naspers:最看好外卖、数字支付和分类广告
南非媒体、科技和投资公司Naspers的首席执行官表示,目前他最看好三大在线领域的投资机会,即外卖、移动支付和分类广告。Naspers曾通过一笔投资取得巨额回报。这家创立于一个多...
-
宏碁Aspire VX 15游戏本正式上市:内置GTX 1050 Ti显卡
3月16日消息,宏碁在 CES 2017 上发布的 Aspire VX 15 游戏笔记本现已上市,虽然搭载了英特尔 Kaby Lake 处理器和 Nvidia Pascal 独显,其性价比仍然相当出众。 VX 15主要有酷...