1. Obtenga la dirección de la imagen en la página original.
<%
función PicStr(cadena)
Set objRegExp = New Regexp 'Establecer objeto de configuración
objRegExp.IgnoreCase = True 'Ignorar mayúsculas y minúsculas
objRegExp.Global = True 'Establecer para búsqueda de texto completo
objRegExp.Pattern = <IMG.+?> 'Para garantizar que la dirección de la imagen se pueda recuperar con precisión, se divide en dos niveles de configuración: primero busque la etiqueta <IMG> dentro y luego recupere la dirección de la imagen dentro. La función getimgs detrás de esto es implementar el último Funcional.
cadenas = recortar (cadena)
Set Matches =objRegExp.Execute(strs) 'Comenzar a ejecutar la configuración
Para cada partido en partidos
PicStr = PicStr &getimgs( Match.Value ) 'Realiza la segunda ronda de emparejamiento
Próximo
'Todas las imágenes son como esta src=http://dirección de imagen, por lo que puede obtener la dirección de imagen exacta como esta
función final
función getimgs(cadena)
obtenerimgs=
Establecer objRegExp1 = Nueva expresión regular
objRegExp1.IgnoreCase = Verdadero
objRegExp1.Global = Verdadero
objRegExp1.Pattern = http://.+? 'Obtener la dirección dentro
establecer mm=objRegExp1.Execute(cadena)
Para cada partido1 en mm
getimgs=getimgs&||&left(Match1.Value,len(Match1.Value)-1) 'Encadena las direcciones internas para su uso posterior
próximo
función final
%>
En segundo lugar, descargue la imagen y guárdela en el servidor.
<%
función getHTTPage(url)
en caso de error reanudar siguiente
http oscuro
set http=server.createobject(MSXML2.XMLHTTP) 'Utilice el método xmlhttp para obtener el contenido de la imagen
Http.open OBTENER,url,falso
http.enviar()
si Http.readystate<>4 entonces
función de salida
terminar si
getHTTPPage=Http.responseBody
establecer http=nada
si err.number<>0 entonces err.Clear
función final
'El contenido de la imagen ha sido obtenido y hay que guardarlo. Da la impresión de que se puede hacer con FSO, pero en realidad no funciona, de esta forma el programa de guardado dará error porque FSO no soporta streaming. archivos, por lo que tenemos que llamar a otro Objeto: ADO.STREM. El proceso específico es el siguiente:
función guardar imagen (de, al archivo)
geturl tenue,objStream,imgs
geturl=recortar(de)
imgs=gethttppage(geturl)'El proceso de obtención del contenido específico de la imagen
Establecer objStream = Server.CreateObject(ADODB.Stream)' Para crear un objeto ADODB.Stream, se requiere ADO 2.5 o superior
objStream.Type =1'Abrir en modo binario
objStream.Open
objstream.write imgs' escribe el contenido de la cadena en el búfer
objstream.SaveToFile server.mappath(tofile),2': escribe el contenido almacenado en el búfer en el archivo
objstream.Close()'Cerrar el objeto
establecer objstream = nada
función final
'Así que simplemente use un bucle para guardar todas las imágenes en la dirección que acaba de obtener. El proceso específico es el siguiente:
arrimg=split(PicStr(str),||) 'Dividimos la cadena y obtenemos la lista de direcciones dentro
allimg=
nuevaimg=
para i=1 a ubound(arrimg)
si arrimg(i)<> e instr(allimg,arrimg(i))<1 entonces 'Ver si esta imagen se ha descargado
fname=baseurl&cstr(i&mid(arrimg(i),instrrev(arrimg(i),.)))
Función saveimage(arrimg(i),fname)' para guardar la dirección, consulte el proceso anterior
allimg=allimg&||&arrimg(i) 'Devuelve las direcciones de las imágenes guardadas para determinar la dirección que se reemplazará
newimg=newimg&||&fname 'Devuelve la dirección local
terminar si
próximo
'El tercer paso es reemplazar la dirección original. El proceso específico es el siguiente:
arrnew=split(newimg,||) 'Obtener la lista de direcciones de la imagen original
arrall=split(allimg,||) 'Obtener la lista de direcciones de las imágenes guardadas
for i=1 to ubound(arrnew) 'Ejecuta un bucle para reemplazar la dirección original
strs=reemplazar(cadenas,arrall(i),arrnew(i))
próximo
%>