1. Ermitteln Sie die Adresse des Bildes auf der Originalseite.
<%
Funktion PicStr(str)
Set objRegExp = New Regexp 'Konfigurationsobjekt festlegen
objRegExp.IgnoreCase = True 'Groß-/Kleinschreibung ignorieren
objRegExp.Global = True 'Für Volltextsuche festlegen
objRegExp.Pattern = <IMG.+?> 'Um sicherzustellen, dass die Bildadresse genau abgerufen werden kann, ist sie in zwei Konfigurationsebenen unterteilt: Suchen Sie zuerst das darin enthaltene <IMG>-Tag und rufen Sie dann die darin enthaltene Bildadresse ab. Die getimgs-Funktion dahinter besteht darin, die letztgenannte Funktion zu implementieren.
strs=trim(str)
Set Matches =objRegExp.Execute(strs) 'Ausführung der Konfiguration starten
Für jedes Spiel in Spielen
PicStr = PicStr &getimgs( Match.Value ) 'Führen Sie die zweite Matching-Runde durch
Nächste
„Alle Bilder haben die folgende src=http://Bildadresse, sodass Sie die genaue Bildadresse wie folgt erhalten können.“
Endfunktion
Funktion getimgs(str)
getimgs=
Setze objRegExp1 = Neuer Regexp
objRegExp1.IgnoreCase = True
objRegExp1.Global = True
objRegExp1.Pattern = http://.+? 'Holen Sie sich die Adresse darin
set mm=objRegExp1.Execute(str)
Für jedes Match1 in mm
getimgs=getimgs&||&left(Match1.Value,len(Match1.Value)-1) 'Füge die darin enthaltenen Adressen zur späteren Verwendung aneinander
nächste
Endfunktion
%>
Zweitens laden Sie das Bild herunter und speichern es auf dem Server.
<%
Funktion getHTTPage(url)
Bei Fehler als nächstes fortfahren
dimmen Sie http
set http=server.createobject(MSXML2.XMLHTTP) 'Verwenden Sie die xmlhttp-Methode, um den Inhalt des Bildes abzurufen
Http.open GET,url,false
Http.send()
wenn Http.readystate<>4 dann
Exit-Funktion
Ende wenn
getHTTPPage=Http.responseBody
setze http=nichts
Wenn err.number<>0, dann err.Clear
Endfunktion
„Der Inhalt des Bildes wurde abgerufen und muss gespeichert werden. Es entsteht der Eindruck, dass dies mit FSO möglich ist, aber tatsächlich funktioniert es nicht. Auf diese Weise wird das Speicherprogramm fehlerhaft sein, da FSO kein Streaming unterstützt.“ Dateien, daher müssen wir ein anderes Objekt aufrufen: ADO.STREM. Der spezifische Prozess ist wie folgt:
Funktion saveimage(from,tofile)
dim geturl,objStream,imgs
geturl=trimmen(von)
imgs=gethttppage(geturl)'Der Prozess zum Abrufen des spezifischen Inhalts des Bildes
Set objStream = Server.CreateObject(ADODB.Stream)' Zum Erstellen eines ADODB.Stream-Objekts ist ADO 2.5 oder höher erforderlich
objStream.Type =1'Im Binärmodus öffnen
objStream.Open
objstream.write imgs' schreibt den String-Inhalt in den Puffer
objstream.SaveToFile server.mappath(tofile),2'-schreibt den gepufferten Inhalt in die Datei
objstream.Close()'Schließe das Objekt
setze objstream=nichts
Endfunktion
„Verwenden Sie also einfach eine Schleife, um alle Bilder unter der gerade erhaltenen Adresse zu speichern. Der spezifische Vorgang ist wie folgt:
arrimg=split(PicStr(str),||) 'Teilen Sie die Zeichenfolge auf und erhalten Sie die Adressliste darin
allimg=
newimg=
für i=1 bis ubound(arrimg)
if arrimg(i)<> and instr(allimg,arrimg(i))<1 then 'Überprüfen Sie, ob dieses Bild heruntergeladen wurde
fname=baseurl&cstr(i&mid(arrimg(i),instrrev(arrimg(i),.)))
saveimage(arrimg(i),fname)‘-Funktion, um die Adresse zu speichern, siehe den Vorgang oben
allimg=allimg&||&arrimg(i) 'Führen Sie die Adressen der gespeicherten Bilder zurück, um die zu ersetzende Adresse zu ermitteln
newimg=newimg&||&fname 'Zeigt die lokale Adresse zurück
Ende wenn
nächste
„Der dritte Schritt besteht darin, die ursprüngliche Adresse zu ersetzen.“ Der spezifische Prozess ist wie folgt:
arrnew=split(newimg,||) 'Holen Sie sich die ursprüngliche Bildadressenliste
arrall=split(allimg,||) 'Ruft die Adressliste der gespeicherten Bilder ab
for i=1 to ubound(arrnew) 'Führen Sie eine Schleife aus, um die ursprüngliche Adresse zu ersetzen
strs=replace(strs,arrall(i),arrnew(i))
nächste
%>