asp网络编程:用ASP编写下载网页中所有资源的程序

  看过一篇关于下载网页中图片的文章,它只能下载以http头的图片,我做了些改进,可以下载网页中的所有连接资源,并按照网页中的目录结构建立本地目录,存放资源。
  download.asp?url=你要下载的网页
  download.asp代码如下:
  <%
  Server.ScriptTimeout=9999
  function SaveToFile(from,tofile)
  on error resume next
  dim geturl,objStream,imgs
  geturl=trim(from)
  Mybyval=getHTTPstr(geturl)
  Set objStream = Server.CreateObject("ADODB.Stream")
  objStream.Type =1
  objStream.Open
  objstream.write Mybyval
  objstream.SaveToFile tofile,2
  objstream.Close()
  set objstream=nothing
  if err.number<>0 then err.Clear
  end function
  function geturlencodel(byval url)‘中文文件名转换
  Dim i,code
  geturlencodel=""
  if trim(Url)="" then exit function
  for i=1 to len(Url)
  code=Asc(mid(Url,i,1))
  if code<0 Then code = code + 65536
  If code>255 Then
  geturlencodel=geturlencodel&"%"&Left(Hex(Code),2)&"%"&Right(Hex(Code),2)
  else
  geturlencodel=geturlencodel&mid(Url,i,1)
  end if
  next
  end function
  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
  getHTTPPage=bytes2BSTR(Http.responseBody)
  set http=nothing
  if err.number<>0 then err.Clear
  end function
  Function bytes2BSTR(vIn)
  dim strReturn
  dim i,ThisCharCode,NextCharCode
  strReturn = ""
  For i = 1 To LenB(vIn)
  ThisCharCode = AscB(MidB(vIn,i,1))
  If ThisCharCode < &H80 Then
  strReturn = strReturn & Chr(ThisCharCode)
  Else
  NextCharCode = AscB(MidB(vIn,i+1,1))
  strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
  i = i + 1
  End If
  Next
  bytes2BSTR = strReturn
  End Function
  function getFileName(byval filename)
  if instr(filename,"/")>0 then
  fileExt_a=split(filename,"/")
  getFileName=lcase(fileExt_a(ubound(fileExt_a)))
  if instr(getFileName,"?")>0 then
  getFileName=left(getFileName,instr(getFileName,"?")-1)
  end if
  else
  getFileName=filename
  end if
  end function
  function getHTTPstr(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
  getHTTPstr=Http.responseBody
  set http=nothing
  if err.number<>0 then err.Clear
  end function
  Function CreateDIR(ByVal LocalPath) ‘建立目录的程序,如果有多级目录,则一级一级的创建
  On Error Resume Next
  LocalPath = Replace(LocalPath, "\", "/")
  Set FileObject = server.CreateObject("Scripting.FileSystemObject")
  patharr = Split(LocalPath, "/")
  path_level = UBound(patharr)
  For I = 0 To path_level
  If I = 0 Then pathtmp = patharr(0) & "/" Else pathtmp = pathtmp & patharr(I) & "/"
  cpath = Left(pathtmp, Len(pathtmp) - 1)
  If Not FileObject.FolderExists(cpath) Then FileObject.CreateFolder cpath
  Next
  Set FileObject = Nothing
  If Err.Number <> 0 Then
  CreateDIR = False
  Err.Clear
  Else
  CreateDIR = True
  End If
  End Function
  function GetfileExt(byval filename)
  fileExt_a=split(filename,".")
  GetfileExt=lcase(fileExt_a(ubound(fileExt_a)))
  end function
  function getvirtual(str,path,urlhead)
  if left(str,7)="http://" then
  url=str
  elseif left(str,1)="/" then
  start=instrRev(str,"/")
  if start=1 then
  url="/"
  else
  url=left(str,start)
  end if
  url=urlhead&url
  elseif left(str,3)="../" then
  str1=mid(str,inStrRev(str,"../")+2)
  ar=split(str,"../")
  lv=ubound(ar)+1
  ar=split(path,"/")
  url="/"
  for i=1 to (ubound(ar)-lv)
  url=url&ar(i)
  next
  url=url&str1
  url=urlhead&url
  else
  url=urlhead&str
  end if
  getvirtual=url
  end function
  ‘示例代码
  dim dlpath
  virtual="/downweb/"
  truepath=server.MapPath(virtual)
  if request("url")<> "" then
  url=request("url")
  fn=getFileName(url)
  urlhead=left(url,(instr(replace(url,"//",""),"/")+1))
  urlpath=replace(left(url,instrRev(url,"/")),urlhead,"")
  strContent = getHTTPPage(url)
  mystr=strContent
  Set objRegExp = New Regexp
  objRegExp.IgnoreCase = True
  objRegExp.Global = True
  objRegExp.Pattern = "(src|href)=.[^\>]+? "
  Set Matches =objRegExp.Execute(strContent)
  For Each Match in Matches
  str=Match.Value
  str=replace(str,"src=","")
  str=replace(str,"href=","")
  str=replace(str,"""","")
  str=replace(str,"‘","")
  filename=GetfileName(str)
  getRet=getVirtual(str,urlpath,urlhead)
  temp=Replace(getRet,"//","**")
  start=instr(temp,"/")
  endt=instrRev(temp,"/")-start+1
  if start>0 then
  repl=virtual&mid(temp,start)&" "
  ‘response.Write repl&"<br>"
  mystr=Replace(mystr,str,repl)
  dir=mid(temp,start,endt)
  temp=truepath&Replace(dir,"/","\")
  CreateDir(temp)
  ‘response.Write getRet&"||"&temp&filename&"<br><br>"
  SaveToFile getRet,temp&filename
  end if
  Next
  set Matches=nothing
  end if
  %>
  看了这篇文章相信大家一定对用ASP编写下载网页中所有资源的程序有所了解了,如果你有不懂的也可以联系“上海治疗阳痿医院”编辑哦!

时间: 2024-10-06 05:54:35

asp网络编程:用ASP编写下载网页中所有资源的程序的相关文章

asp网络编程:使用ASP建设私人的搜索引擎

很多网络爱好者在创建自己的个人主页时,都绞尽脑汁让自己网站的功能更全面.在此,笔者介绍一种使用ASP建立自己的搜索引擎的方法. 基本思路 利用表单将用户提交的搜索关键字存储在变量中,并提交给ASP脚本处理.利用ASP内建的“REQUEST”对象获取变量中的关键字符,随后用“RESPONSE”的“REDIRECT”函数将关键字符转向提交到其他的诸如搜狐.网易等专业搜索引擎中,即可得出搜索结果.使得访客在自己的主页上就可方便地使用各大搜索引擎,无需登录其主页面. 第一步 创建搜索引擎的主页面.在HT

asp网络编程:用ASP实现网页BBS

传统的网页BBS大多是采用CGI模式实现的,它的实现要求编程者既要掌握编程语言如Perl或C等,又要了解关于CGI模式的各项技术内容,因此要制作自己的网页BBS确实困难不小.ASP(Active Server Pages 动态服务器主页)的出现,使我们眼前一亮,能不能利用ASP实现网页BBS呢?回答当然是肯定的.ASP的诱人之处就在于它提供了一种简单易学的脚本,并带有许多内置的对象,从而提供了一条简捷的编程之路.[上海治疗阳痿医院] 该BBS主要由用户注册(浏览器端).用户注册(服务器端).加帖

asp网络编程:用ASP构建音乐服务器的方法

---- 音乐服务器(Music Server)是指一个提供音乐在线服务的服务器,它包括高端提供门户服务的网站.Web数据库和低端的操作平台.硬件设施.目前,在Internet和Intranet上有不少这样的站点,特别是在一些高速宽带的局域网中(如校园网),音乐服务器给上网的朋友提供了休闲娱乐的好去处,同时也给网站带来了较高的访问率. ----像其他站点一样,音乐服务器包括网站和硬件两个部分.硬件性能和服务器效率是成正比的,因而如何构建网站才是一个音乐服务器的关键.从目前来看,网站基本有两种类型

asp网络编程:用ASP编程实现网络内容快速查找

有一天我突发奇想,要是我每到一个网站,那里都能立刻调出我需要看的信息,那岂非美妙得很.接下来我想更深入地考虑这个问题,坐到椅子上拿一支铅笔,却不知道自己写什么.如此一来,我还是得着手对付代码它们. 我的朋友开了一个小型站点,原本是我设计的.这是个检验我想法的好平台.所以我写出代码,上传了文件.真叫人兴奋,程序工作起来煞是圆满,同时也证明我的想法的确不错. 以前看过一些网络使用者倾向报告,其中有一个规律给我印象很深.说是大多数用户如果在三次点击内无法找到自己需要的内容,就会立刻离开该站点.我的代码

asp网络编程:用ASP打开远端MDB文件的方法

如果你用ODBC connection (DSN or DSN-less)来访问远端的(UNC path)数据库, OLEDB会出现以下错误信息: Microsoft OLE DB Provider for ODBC Drivers error ’80004005’ [Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file ’(unknown)’. It is

C# 网络编程之webBrowser获取网页url和下载网页中图片

该文章主要是通过C#网络编程的webBrowser获取网页中的url并简单的尝试下载网页中的图片,主要是为以后网络开发的基础学习.其中主要的通过应用程序结合网页知识.正则表达式实现浏览.获取url.下载图片三个功能.而且很清晰的解析了每一步都是以前一步为基础实现的. 一.界面设计 界面设计如下图所示,添加控件如图,设置webBrowser1其Anchor属性为Top.Bottom.Left.Right,实现对话框缩放;设置groupBox1其Dock(定义要绑到容器控件的边框)为Buttom,实

TCP 、UDP网络编程作业代写、代写C 语言 TCP程序 Network Programming using C

TCP .UDP网络编程作业代写.代写C 语言 TCP程序Network Programming using COverview? This homework is due by 11:59:59 PM on Thursday, April 26, 2018.? This homework will count as 8% of your final course grade.? This homework is to be completed individually. Do not shar

js网页中调用本地应用程序

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Test ActiveXObject</title> <script> function Run(command) { windo

asp网络编程:在服务器端控制网页

使用.Net和C#开发Web应用程序往往能给我们很大的启示,尤其在开发相对简单的例行任务时就更是如此.例如,在许多时候,我们都需要有条件地显示一个网页的一部分.需要这么做的原因有许多,例如,根据用户的角色,有一部分是它不应当看到的.或者,我们也可以考虑搜索功能,只有点击了一个链接后,搜索选项才是可用的. 我们先来解释一下解决这一问题的方法,然后再详细地解释所使用的代码.在.Net中开发Web应用程序,我们既可以使用服务器端的Web控件(Web表单)也可以使用HTML控件.使用.NET开发Web应