Der hier erwähnte Dieb bezieht sich auf die Verwendung der leistungsstarken Funktionen, die von der XMLHTTP-Komponente in XML in ASP bereitgestellt werden, um die Daten (Bilder, Webseiten und andere Dateien) auf der Remote-Website auf der lokalen Website zu erfassen und sie nach verschiedenen Verarbeitungsvorgängen auf der Seite anzuzeigen eine Art Programm, das in einer Datenbank gespeichert ist. Sie können diese Art von Diebprogramm verwenden, um einige Aufgaben zu erledigen, die in der Vergangenheit völlig unmöglich erschienen, wie zum Beispiel die Seiten einer bestimmten Website zu ändern und sie in Ihre eigenen Seiten umzuwandeln oder einige Daten (Artikel, Bilder) einer bestimmten Website zu speichern zur Verwendung in der lokalen Datenbank. Die Vorteile von Thief sind: Die Website muss nicht gewartet werden, da die Daten im Thief-Programm von anderen Websites stammen und im Allgemeinen viele Serverressourcen einsparen können Das Thief-Programm verfügt nur über wenige Dateien und alle Webinhalte stammen von anderen Websites. Die Nachteile sind: Instabilität, wenn die Zielwebsite fehlschlägt, geht auch das Programm schief, und wenn die Zielwebsite aktualisiert und gewartet wird, muss auch die Geschwindigkeit des Diebprogramms entsprechend geändert werden, da es sich um einen Remote-Aufruf handelt. Die Geschwindigkeit ist so hoch wie beim Lesen von Daten auf dem lokalen Server. Sie ist definitiv langsamer. Wie wäre es damit? Klingt großartig, oder? Beginnen wir jetzt damit, ein paar Einführungskenntnisse in das Thief-Programm zu erlernen!
Schauen wir uns etwas Einfacheres an: das Wettervorhersageprogramm auf der QQ-Website
Der Code lautet wie folgt:
<%
Bei Fehler Weiter fortsetzen
Server.ScriptTimeOut=9999999
Funktion getHTTPage(Pfad)
t = GetBody(Pfad)
getHTTPPage=BytesToBstr(t,GB2312)
Funktion beenden
' Nehmen Sie zunächst einige Initialisierungseinstellungen für das Diebprogramm vor. Die Funktion der oben genannten Codes besteht darin, alle nicht schwerwiegenden Fehler zu ignorieren und das Laufzeitlimit des Diebprogramms auf einen sehr langen Zeitraum festzulegen (damit keine Laufzeitfehler auftreten). , und konvertieren Sie den ursprünglichen Standard. Die UTF-8-Kodierung muss in die GB2312-Kodierung konvertiert werden. Andernfalls führt die direkte Verwendung der XMLHTTP-Komponente zum Aufrufen einer Webseite mit chinesischen Zeichen zu verstümmeltem Code.
Funktion GetBody(url)
Bei Fehler als nächstes fortfahren
Set Retrieval = CreateObject(Microsoft.XMLHTTP)
Mit Abruf
.Open Get, URL, False, ,
.Schicken
GetBody = .ResponseBody
Ende mit
Abruf festlegen = Nichts
Funktion beenden
„Rufen Sie dann die XMLHTTP-Komponente auf, um ein Objekt zu erstellen und Ersteinstellungen vorzunehmen.“
Funktion BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject(adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.Öffnen
objstream.Text schreiben
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Schließen
set objstream = nichts
Funktion beenden
Funktion Newstring(wstr,strng)
Newstring=Instr(lcase(wstr),lcase(strng))
wenn Newstring<=0 dann Newstring=Len(wstr)
Funktion beenden
„Um die erfassten Daten zu verarbeiten, müssen Sie die Komponente adodb.stream aufrufen und Initialisierungseinstellungen vornehmen.“ %>
'Das Folgende ist der Seitenanzeigeteil
<%
Dimmen Sie wstr,str,url,start,over,city
'Definieren Sie einige Variablen, die verwendet werden müssen
Stadt = Request.QueryString(id)
'Die vom Programm zurückgegebene ID-Variable (d. h. die vom Benutzer ausgewählte Stadt) wird der ID zugewiesen
url=http://appnews.qq.com/cgi-bin/news_qq_search?city=&city&
'Hier legen Sie die Seitenadresse fest, die gecrawlt werden soll. Natürlich können Sie auch direkt eine Adresse angeben, ohne Variablen zu verwenden.
wstr=getHTTPage(url)
'Alle Daten der angegebenen Seite abrufen
start=Newstring(wstr, <html>)
„Hier wird der Header der zu verarbeitenden Daten festgelegt. Der spezifische Inhalt kann durch Anzeigen des Quellcodes der zu crawlenden Seite ermittelt werden.“ Da wir in diesem Programm die gesamte Seite crawlen müssen, haben wir es so eingestellt, dass alle Seiten gecrawlt werden. Beachten Sie, dass der festgelegte Inhalt eindeutig für den Seiteninhalt sein muss und nicht wiederholt werden kann.
over=Newstring(wstr, </HTML>)
„Entsprechend dem Start ist das Ende der Daten, die verarbeitet werden müssen. Ebenso muss der festgelegte Inhalt auf der Seite eindeutig sein.“
body=mid(wstr,start,over-start)
'Legen Sie den Bereich der angezeigten Seiten fest
„Jetzt ist es an der Zeit, Qiankun Shift +++ zu verwenden. Durch Ersetzen können Sie die angegebenen Zeichen in den Daten durch einige Zeichen ersetzen.
body = replace(body,skin1,Weather Forecast-Skin Network)
body = replace(body,http://appnews.qq.com/cgi-bin/news_qq_search?city,tianqi.asp?id)
„Die Ersetzungsarbeiten wurden in diesem Programm abgeschlossen. Wenn andere Anforderungen bestehen, können Sie weiterhin ähnliche Ersetzungsvorgänge durchführen.“
Antwort.Write-Text
%>
Nach dem Ersetzen des zu ändernden Inhalts kann der geänderte Inhalt auf der Seite angezeigt werden. Dies ist das Ende des Prozesses
Programmnutzung und Ergebnisse: Entfernen Sie den Beschreibungsteil des obigen Codes, speichern Sie ihn als tianqi.asp, laden Sie ihn in einen Bereich hoch, der ASP und XML unterstützt, und führen Sie ihn im Browser aus. Auf Basis dieses Programms können Sie weitere Schnittstellenverschönerungen oder Programmoptimierungen durchführen.
Dies sind nur einige grundlegende Anwendungen der XMLHTTP-Komponente. Tatsächlich können damit auch viele Funktionen implementiert werden, z. B. das Speichern von Remote-Bildern auf dem lokalen Server und die Verwendung der Komponente „adodb.stream“ zum Speichern der erfassten Daten in der Datenbank. Thief hat ein breites Spektrum an Funktionen und Einsatzmöglichkeiten. Aber Sie können damit keine illegalen Dinge tun!
Vielleicht möchten einige Leute immer noch fragen, ob diese Art von Diebprogramm nur ein Patent von ASP ist. Nein, PHP kann den gleichen Effekt durch die fopen-Funktion erzielen. Aufgrund der verschiedenen Eigenschaften von PHP selbst hat das geschriebene Thief-Programm im Vergleich zu ASP offensichtliche Vorteile. Aufgrund von Platzbeschränkungen werde ich dies jedoch nicht tun Erkläre sie einzeln.