1. Obtenha o endereço da imagem na página original.
<%
função PicStr(str)
Set objRegExp = New Regexp 'Definir objeto de configuração
objRegExp.IgnoreCase = True 'Ignorar caso
objRegExp.Global = True 'Definido para pesquisa de texto completo
objRegExp.Pattern = <IMG.+?> 'Para garantir que o endereço da imagem possa ser recuperado com precisão, ele é dividido em dois níveis de configuração: primeiro encontre a tag <IMG> dentro e, em seguida, recupere o endereço da imagem dentro. A função getimgs por trás disso é implementar o último funcional.
strs=cortar(str)
Set Matches =objRegExp.Execute(strs) 'Iniciar execução da configuração
Para cada partida nas partidas
PicStr = PicStr &getimgs( Match.Value ) 'Realiza a segunda rodada de correspondência
Próximo
'Todas as imagens são assim src=http://endereço da imagem, então você pode obter o endereço exato da imagem assim
função final
função getimgs(str)
getimgs=
Definir objRegExp1 = Novo Regexp
objRegExp1.IgnoreCase = Verdadeiro
objRegExp1.Global = Verdadeiro
objRegExp1.Pattern = http://.+ 'Obter o endereço dentro
definir mm = objRegExp1.Execute (str)
Para cada partida1 em mm
getimgs=getimgs&||&left(Match1.Value,len(Match1.Value)-1) 'Junte os endereços internos para uso posterior
próximo
função final
%>
Segundo, baixe a imagem e salve-a no servidor.
<%
função getHTTPage(url)
em caso de erro, retome a seguir
escurecer http
set http=server.createobject(MSXML2.XMLHTTP) 'Use o método xmlhttp para obter o conteúdo da imagem
Http.open GET,url,falso
http.send()
se Http.readystate<>4 então
função de saída
terminar se
getHTTPPage=Http.responseBody
definir http = nada
se err.número<>0 então err.Clear
função final
'O conteúdo da imagem foi obtido e precisa ser salvo. Dá a impressão de que isso pode ser feito com o FSO, mas na verdade não funciona desta forma, o programa de salvamento apresentará erro porque o FSO não suporta streaming. arquivos, então temos que chamar outro Objeto: ADO.STREM. O processo específico é o seguinte:
função salvar imagem (de, para arquivo)
dim geturl,objStream,imgs
geturl=cortar(de)
imgs=gethttppage(geturl)'O processo de obtenção do conteúdo específico da imagem
Set objStream = Server.CreateObject(ADODB.Stream)' Para criar um objeto ADODB.Stream, é necessário ADO 2.5 ou superior
objStream.Type = 1'Abrir em modo binário
objStream.Open
objstream.write imgs' grava o conteúdo da string no buffer
objstream.SaveToFile server.mappath(tofile),2'-grava o conteúdo em buffer no arquivo
objstream.Close()'Fecha o objeto
definir objstream = nada
função final
'Portanto, basta usar um loop para salvar todas as fotos no endereço que acabamos de obter. O processo específico é o seguinte:
arrimg=split(PicStr(str),||) 'Divide a string e obtém a lista de endereços dentro
tudo =
novaimg=
para i=1 para ubound(arrimg)
if arrimg(i)<> and instr(allimg,arrimg(i))<1 then 'Veja se esta imagem foi baixada
fname=baseurl&cstr(i&mid(arrimg(i),instrrev(arrimg(i),.)))
função saveimage(arrimg(i),fname)' para salvar o endereço, veja o processo acima
allimg=allimg&||&arrimg(i) 'Retorna os endereços das imagens salvas para determinar o endereço a ser substituído
newimg=newimg&||&fname 'Retorna o endereço local
terminar se
próximo
'O terceiro passo é substituir o endereço original. O processo específico é o seguinte:
arrnew=split(newimg,||) 'Obtém a lista de endereços da imagem original
arrall=split(allimg,||) 'Obtém a lista de endereços das imagens salvas
for i=1 to ubound(arrnew) 'Executa um loop para substituir o endereço original
strs=substituir(strs,arrall(i),arrnew(i))
próximo
%>