Baixe todo o conteúdo na página remota de uma só vez
Método de uso, salve o código acima como um por exemplo: DownFile.asp
Entre no navegador:
http: // seu endereço/downfile.asp? url = http: //www.baidu.com/index.html
| 'Defina o tempo de tempo limite Server.scriptTimeout = 9999 '######################## 'Função de salvar arquivo '##################### função savetofile (de, tofile) em erro de erro em seguida Dim geturl, objstream, imgs geturl = Trim (de) Mybyval = Gethttpstr (geturl) Set objstream = server.createObject ("adodb.stream") objstream.type = 1 objstream.open objstream.write mybyval Objstream.Savetofile Tofile, 2 objstream.close () Defina objstream = nada se err.number0 então err.clear Função final '######################## Substituição de processamento de caracteres '##################### função geturlencodel (byval url) 'nomes de arquivo chinês conversão Dim i, código geturlencodel = "" Se TRIM (url) = "" então função de saída para i = 1 a len (url) código = ASC (MID (URL, i, 1)) Se o código de código> 255 então getUrlencodel = geturlencodel & "%" & Left (Hex (Code), 2) & "%" & Right (Hex (Code), 2) outro geturlencodel = geturlencodel & Mid (URL, i, 1) final se próximo Função final '######################## 'XML Obtenha a página remota Iniciar '##################### Função Gethttppage (URL) em erro de erro em seguida Dim http Definir http = server.createObject ("msxml2.xmlHttp") Http.open "get", url, falso Http.send () Se http.readyState4, então a função de saída gethttppage = bytes2bst (http.Responsebody) Defina http = nada se err.number0 então err.clear Função final Função bytes2bstr (vin) Dim strreturn dim i, thischarcode, nextcharcode strreturn = "" Para i = 1 a lenb (vin) ThisCharcode = ASCB (MIDB (VIN, i, 1)) Se thischarcode strreturn = strreturn & ch (thischarcode) Outro NextcharCode = ASCB (MIDB (VIN, I+1,1)) strreturn = strreturn & ch (clng (thischarcode) * & h100 + cint (nextcharcode)) i = i + 1 Final se Próximo bytes2bstr = strreturn Função final '######################## 'XML pega a página remota para terminar, esta é uma parte comum de todos os programas de ladrões '##################### '######################## 'Decomponha o endereço e obtenha o nome do arquivo '##################### função getFilename (nome do arquivo byval) Se Instr (nome do arquivo, "/")> 0 então FILEEXT_A = Split (nome do arquivo, "/") getFilename = lcase (fileExt_a (ubund (fileext_a)))) Se Instr (getFilename, "?")> 0 Então getFilename = esquerda (getFileName, instrum (getFileName, "?")-1) final se outro getFilename = nome do arquivo final se Função final '######################## 'Obtenha a função de página remota '##################### função gethttpstr (url) em erro de erro em seguida Dim http Definir http = server.createObject ("msxml2.xmlHttp") Http.open "get", url, falso Http.send () Se http.readyState4, então a função de saída Gethttpstr = http.ResponseBody Defina http = nada se err.number0 então err.clear Função final '######################## 'Função de processamento FSO, crie diretório '##################### Function CreatedIr (ByVal LocalPath) 'O programa que cria um diretório. Se houver vários níveis de diretórios, cria um nível de cada vez. Em erro de erro em seguida LocalPath = Substitua (LocalPath, "/", "/") Set fileObject = server.createObject ("scripting.filesystemoBject") PATHARR = SPLIT (LOCALPATH, "/") path_level = ubound (patharr) Para i = 0 para path_level Se i = 0 então pathtmp = patharr (0) & "/" else Pathtmp = pathtmp & patrAr (i) & "/" cpath = esquerda (pathtmp, len (pathtmp) - 1) Se não for fileObject.olderexists (cpath), então fileObject.createfolder cpath Próximo Set fileObject = nada Se err.number 0 então CreateDir = false Err.clear Outro CreativeIr = true Final se Função final função getFileExt (nome do arquivo byval) FILEEXT_A = Split (nome do arquivo, ".") GetFileExt = lcase (FILEEXT_A (UBUND (FILEEXT_A))) Função final '######################## 'Como conseguir o caminho virtual '##################### função getvirtual (str, caminho, urlhead) se esquerdo (str, 7) = "http: //" então url = str elseif Left (str, 1) = "/" então start = Instrrev (str, "/") se inicializar = 1 então url = "/" outro url = esquerda (str, start) final se url = urlhead & url elseif Left (str, 3) = "../" então STR1 = MID (STR, Instrrev (str, "../")+2) AR = Split (str, "../") lv = ubund (ar) +1 AR = Split (Path, "/") url = "/" para i = 1 a (ubund (ar) -lv) url = url & ar (i) próximo url = url & str1 url = urlhead & url outro url = urlhead & str final se getVirtual = url Função final |