Das Erfassungsprogramm ruft tatsächlich Webseiten auf anderen Websites über die XMLHTTP-Komponente in XML auf. Beispielsweise rufen viele Nachrichtenprogramme die Nachrichten-Webseiten von Sina auf und einige der darin enthaltenen HTML-Seiten werden ersetzt, und auch Werbung wird gefiltert. Die Vorteile der Verwendung eines Erfassungsprogramms sind: Es ist nicht erforderlich, die Website zu pflegen, da die Daten im Erfassungsprogramm von anderen Websites stammen und im Allgemeinen Serverressourcen einsparen können Das Sammlungsprogramm verfügt nur über wenige Dateien und alle Webinhalte stammen von anderen Websites. Die Nachteile sind:
Instabil: Wenn die Zielwebsite fehlschlägt, wird auch das Programm fehlschlagen. Wenn die Zielwebsite aktualisiert und gewartet wird, muss auch die Geschwindigkeit des Erfassungsprogramms angepasst werden, da es sich um einen Remote-Aufruf handelt und die Geschwindigkeit langsamer ist als das Lesen von Daten auf dem lokalen Server.
1. Fälle
Im Folgenden finden Sie eine kurze Erläuterung der Anwendung von XMLHTTP in ASP.
Kopieren Sie den Codecode wie folgt:
<%
'Häufig verwendete Funktionen
'1. Geben Sie die URL der Zielwebseite ein und der Rückgabewert getHTTPPage ist der HTML-Code der Zielwebseite.
Funktion getHTTPage(url)
dimHttp
set Http=server.createobject(MSXML2.XMLHTTP)
Http.open GET,url,false
Http.send()
wenn Http.readystate<>4 dann
Exit-Funktion
Ende wenn
getHTTPPage=bytesToBstr(Http.responseBody,GB2312)
setze http=nichts
Wenn err.number<>0, dann err.Clear
Endfunktion
2. Konvertieren Sie Ranma direkt, um Webseiten mit chinesischen Zeichen aufzurufen. Sie können es über die Komponente adodb.stream konvertieren.
Funktion BytesToBstr(body)
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 = GB2312 'Konvertieren Sie die ursprüngliche Standard-UTF-8-Kodierung in die GB2312-Kodierung. Andernfalls führt die direkte Verwendung der XMLHTTP-Komponente zum Aufrufen einer Webseite mit chinesischen Zeichen zu verstümmeltem Code.
BytesToBstr = objstream.ReadText
objstream.Schließen
set objstream = nichts
Funktion beenden
'Versuchen Sie, den HTML-Inhalt von http://www.google unten aufzurufen
Dunkle URL, HTML
URL=http://www.google;
Html = getHTTPage(URL)
Response.write Html
%>
2. Mehrere häufig verwendete Funktionen
InStr-Funktion
Beschreibung Gibt die Position zurück, an der ein bestimmtes Zeichen (Zeichenfolge2) zum ersten Mal in einer anderen Zeichenfolge (Zeichenfolge1) erscheint.
SyntaxInStr(string1, string2)
Zum Beispiel:
Dimmen Sie SearchString, SearchChar
SearchString =http://www.google ' Die Zeichenfolge, nach der gesucht werden soll.
SearchChar = blue1000 'Suche nach blue1000.
MyBK = Instr(SearchString, SearchChar) ' Rückgabe 8
'Gib 0 zurück, wenn nicht gefunden, zum Beispiel:
SearchChar = BK
MyBK = Instr(SearchString, SearchChar) ' Rückgabe 0
Mittelfunktion
Beschreibung: Gibt die angegebene Anzahl von Zeichen aus einer Zeichenfolge zurück.
SyntaxMid(string, start, over)
Zum Beispiel:
Dimmen Sie MyBK
MyBK = Mid (unser BK-Design (www.google), 7, 12) „Fängt die Zeichenfolge 12 Zeichen nach dem 7. Zeichen unseres BK-Designs (www.google) ab.“ Zu diesem Zeitpunkt wird der Wert von MyBK zu www.google
Funktion ersetzen
Dimmen Sie SearchString, SearchChar
SearchString = Unser BK-Design ist die Zeichenfolge einer Website-Erstellungsressource, in der gesucht werden soll.
SearchString =Replace(SearchString, BK design, Www.google)'Zu diesem Zeitpunkt wird der Wert von SearchString zu unserem Www.google ist eine Ressourcen-Website zum Erstellen von Websites
3. Fangen Sie den HTML-Code des angegebenen Bereichs ab
Beispielsweise möchte ich im folgenden HTML-Code nur den Textteil zwischen <td> und </td> abrufen:
<html>
<title>BK (www.google) Google-Suchmaschine</title>
<Körper>
<Tabelle>
<tr><td></td></tr>
<tr><td id=Content>BK (www.google) Die Google-Suchmaschine ist eine Website mit vielen Ressourcen...</td></tr>
</table>
</body>
</html>
<%
…
Dim StrBK,start,over,RsBK
StrBK=getHTTPPage (die Adresse der Webseite)
start=Instr(StrBK,<td id=Content>) 'Die Funktion hier besteht darin, die Position des Anfangs der Zeichenfolge zu ermitteln. Jemand wird hier fragen: Der ursprüngliche Code ist <td id=Content>. Warum rufen Sie hier <td id=Content> auf? Antwort: in asp (um genau zu sein, wird es in VBscript durch zwei doppelte Anführungszeichen dargestellt.) Anführungszeichen, da doppelte Anführungszeichen ein sensibles Zeichen für das Programm sind.) over=Instr(StrBK,…</td></tr>)'Die Funktion besteht hier darin, die Position des Endes der Zeichenfolge zu ermitteln. 'Hier wird noch einmal jemand fragen:( : Warum gibt es drei zusätzliche Punkte vor dem HTML-Code, den das Programm aufruft...? Antwort: Tipp: Oben steht auch ein </td></tr> Wenn Sie zum Suchen </td></ tr> verwenden, betrachtet das Programm </td></tr> in der obigen Zeile fälschlicherweise als das Ende der abzurufenden Zeichenfolge. RsBK=mid(StrBK,start, Überstart). „Die Funktion hier besteht darin, die Zeichenfolge zwischen dem Startzeichen und dem Überzeichen in StrBK zu extrahieren. Ich habe auch über die Mittelfunktion im vorherigen Abschnitt gesprochen , also die Anzahl der Zeichen.
Response.write(RsBK) 'Endlich den vom Programm erhaltenen Inhalt ausgeben
%>
Seien Sie nicht zu glücklich. Wenn Sie es ausführen, werden Sie feststellen, dass im HTML-Code der Seite ein Fehler vorliegt. Denn der HTML-Code, den Sie erhalten haben, lautet: <td id=Content>BK (www.google) Die Google-Suchmaschine ist eine Website mit vielen Ressourcen ...
Hast du das gesehen? Es ist unvollständiger HTML-Code vorhanden! Was zu tun? Die Anweisung start=Instr(StrBK,<td id=Content>) ruft den Inhalt von <td id=Content> in ab
Die Positionsnummer in StrBK, jetzt können wir nach der Programmanweisung 17 hinzufügen, dann zeigt das Programm die Position auf das Zeichen nach <td id=Content>.
Okay, das Programm wird sich wie folgt ändern:
<%
…
Dim StrBK,start,over,RsBK
StrBK=getHTTPPage (die Adresse der Webseite)
start=Instr(StrBK,<td id=Content>) + 17
over=Instr(StrBK,…</td></tr>) 'Hier können Sie auch sieben (-7) subtrahieren, um 3 Punkte zu entfernen
RsBK=mid(StrBK,start,over-start)
Antwort.write(RsBK)
%>
Das ist in Ordnung, wir können stehlen, was wir wollen, und es auf unserer eigenen Seite anzeigen, haha~
4. Löschen oder ändern Sie die erhaltenen Zeichen
Ersetzen Sie BK(www.google) in RsBK durch BK:
RsBK=replace(RsBK,BK(www.google),BK)
Oder direkt löschen (www.google):
RsBK=replace(RsBK,(www.google),)
Okay, jetzt wird aus RsBK: BK Die Google-Suchmaschine ist eine Website mit vielen Ressourcen ... Tatsächlich ist die Ersetzungsfunktion jedoch möglicherweise nicht für bestimmte Situationen geeignet. Beispielsweise möchten wir alle Verbindungen in einer bestimmten Zeichenfolge ersetzen . Verbindungen können viele Typen umfassen, und Ersetzen kann nur einen bestimmten davon ersetzen. Wir können es nicht durch eine entsprechende Ersetzungsfunktion ersetzen, oder?