Ich habe mehrere Sammlungsprogramme entwickelt und viele Sammlungsprogrammcodes studiert, sodass ich ein wenig Verständnis für die Prinzipien von Sammlungsprogrammen habe. Lassen Sie uns zunächst über das Sammelprinzip sprechen:
Die Hauptschritte des Inkassoverfahrens sind wie folgt:
1. Erhalten Sie den Inhalt der gesammelten Seiten
2. Extrahieren Sie alle verwendeten Daten aus dem Erfassungscode
1. Erhalten Sie den Inhalt der gesammelten Seiten
Die mir derzeit am häufigsten verwendeten ASP-Methoden zum Abrufen des Inhalts der gesammelten Seiten sind:
1. Verwenden Sie die serverXMLHTTP-Komponente, um Daten abzurufen
Kopieren Sie den Codecode wie folgt:
Funktion GetBody(weburl)
'Objekt erstellen
Dimmen Sie ObjXMLHTTP
Legen Sie ObjXMLHTTP=Server.CreateObject(MSXML2.serverXMLHTTP) fest.
'Anfragedatei, in asynchroner Form
ObjXMLHTTP.Open GET,weburl,False
ObjXMLHTTP.send
Während ObjXMLHTTP.readyState <> 4
ObjXMLHTTP.waitForResponse 1000
Wend
„Holen Sie sich das Ergebnis
GetBody=ObjXMLHTTP.responseBody
'Objekt freigeben
Setze ObjXMLHTTP=Nothing
Funktion beenden
Aufrufmethode:
GetBody(URLf-Adresse der Datei)
2. Oder XMLHTTP-Komponente zum Abrufen von Daten
Kopieren Sie den Codecode wie folgt:
Funktion GetBody(weburl)
'Objekt erstellen
Set Retrieval = CreateObject(Microsoft.XMLHTTP)
Mit Abruf
.Open Get, weburl, False, ,
.Schicken
GetBody = .ResponseBody
Ende mit
'Objekt freigeben
Abruf festlegen = Nichts
Funktion beenden
Aufrufmethode:
GetBody(URLf-Adresse der Datei)
Der so gewonnene Dateninhalt muss vor der Nutzung noch kodiert und konvertiert werden.
Kopieren Sie den Codecode wie folgt:
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
Aufrufmethode: BytesToBstr (zu konvertierende Daten, Kodierung). Die Kodierung wird üblicherweise als GB2312 und UTF-8 verwendet
2. Extrahieren Sie alle verwendeten Daten aus dem Erfassungscode
Die Methoden, die ich derzeit habe, sind:
1. Verwenden Sie die integrierte MID-Funktion von ASP, um die erforderlichen Daten abzufangen
Kopieren Sie den Codecode wie folgt:
Funktionskörper(wstr,start,over)
start=Newstring(wstr,start)
'Legen Sie das eindeutige Start-Tag der Daten fest, die verarbeitet werden müssen
over=Newstring(wstr,over)
„Entsprechend dem Start ist das einzige End-Tag der Daten, die verarbeitet werden müssen.“
body=mid(wstr,start,over-start)
'Legen Sie den Bereich der angezeigten Seiten fest
Funktion beenden
Aufrufmethode: Body (Inhalt der gesammelten Seite, Start-Tag, End-Tag)
2. Verwenden Sie reguläre Ausdrücke, um die erforderlichen Daten zu erhalten
Kopieren Sie den Codecode wie folgt:
Funktionskörper(wstr,start,over)
Set xiaoqi = Neues Regexp'set-Konfigurationsobjekt
xiaoqi.IgnoreCase = True'Groß-/Kleinschreibung ignorieren
xiaoqi.Global = True' ist auf Volltextsuche eingestellt
xiaoqi.Pattern = &start&.+?&over&'regulärer Ausdruck
Set Matches =xiaoqi.Execute(wstr)'Starten Sie die Ausführung der Konfiguration
setze xiaoqi=nichts
Körper=
Für jedes Spiel in Spielen
body=body&Match.Value 'Schleifenvergleich
Nächste
Funktion beenden
Aufrufmethode: Body (Inhalt der gesammelten Seite, Start-Tag, End-Tag)
Detaillierte Ideen zum Inkassoverfahren:
1. Ermitteln Sie die Adresse jeder Seite der paginierten Listenseite der Website
Derzeit verfügen die meisten dynamischen Websites über Regeln für Paging-Adressen, wie zum Beispiel:
dynamische Seite
Erste Seite: index.asp?page=1
Zweite Seite: index.asp?page=2
Die dritte Seite: index.asp?page=3
.....
statische Seite
Erste Seite: page_1.htm
Zweite Seite: page_2.htm
Die dritte Seite: page_3.htm
.....
Um die Adresse jeder Seite der Paging-Listenseite der Website zu erhalten, müssen Sie lediglich Variablen verwenden, um die sich ändernden Zeichen jeder Seitenadresse zu ersetzen, z. B.: page_<%=&page&%>.htm
2. Erhalten Sie den Inhalt der paginierten Listenseite der gesammelten Website
3. Extrahieren Sie die URL-Verbindungsadresse der gesammelten Inhaltsseite aus dem Paging-Listencode
Für die meisten Inhaltsseitenlinks auf paginierten Seiten gelten auch feste Regeln, wie zum Beispiel:
<a href=url1>Verbindung 1</a> <br>
<a href=url2>Verbindung 2</a> <br>
<a href=url3>Verbindung 3</a> <br>
Verwenden Sie den folgenden Code, um eine Sammlung von URL-Verbindungen abzurufen
Kopieren Sie den Codecode wie folgt:
Setze xiaoqi = Neuer regulärer Ausdruck
xiaoqi.IgnoreCase = True
xiaoqi.Global = True
xiaoqi.Pattern = .+?
Set Matches =xiaoqi.Execute(Seitenlisteninhalt)
setze xiaoqi=nichts
URL=
Für jedes Spiel in Spielen
url=url&Match.Value
Nächste
4. Erhalten Sie den Inhalt der Seite mit gesammeltem Inhalt und fangen Sie die von der Seite mit gesammeltem Inhalt abzurufenden Daten gemäß der Extraktionsmarkierung ab.
Da es sich um eine dynamisch generierte Seite handelt, verfügen die meisten Inhaltsseiten über dieselben HTML-Tags. Wir können die erforderlichen Teile des Inhalts basierend auf diesen regulären Tags extrahieren.
wie:
Jede Seite hat einen Webseitentitel <title>Webpage title</title>. Sie können die MID-Abfangfunktion verwenden, die ich oben geschrieben habe, um den Wert zwischen <title></title> abzurufen, oder Sie können ihn mit regulären Ausdrücken abrufen.
Beispiel: body(<title>Webseitentitel</title>,<title>,</title>)