Es gibt jetzt viele Sammelprogramme online, aber manchmal müssen Sie das Programm selbst schreiben, wenn Sie eine gute Website finden und ein Sammelwerkzeug für sich selbst erstellen möchten. Tatsächlich sind solche Sammelprogramme nicht schwer zu schreiben. Sie analysieren hauptsächlich die Webstruktur der Source -Website.
Laden Sie zuerst eine XMLHTTP -Klassendatei herunter:
<%
Klasse XHTTP
Privat CSET, Surl, Serror
Private sub class_initialize ()
'CSET = "UTF-8"
CSET = "GB2312"
serror = ""
Ende sub
Private sub class_terate ()
Ende sub
Öffentliches Eigentum lassen Sie URL (Theurl)
surl = theurl
Beenden Sie Eigentum
öffentliches Eigentum bekommen Basispath ()
Basepath = Mid (Surl, 1, Instrrev (Surl, "/")-1)
Beenden Sie Eigentum
öffentliches Eigentum erhalten Sie Dateiname ()
Dateiname = Mid (Surl, Instrrev (Surl, "/")+1)
Beenden Sie Eigentum
öffentliches Eigentum erhalten HTML ()
Html = byTestObstr (getBody (surl))
Beenden Sie Eigentum
öffentliches Eigentum erhalten Sie xhtttperror ()
XHTTTERROR = SERROR
Beenden Sie Eigentum
Private Funktion Bytestobstr (Körper)
Bei der nächsten Fehleraufnahme als nächstes
'CSET: GB2312 UTF-8
Dimer Objstream
Setzen Sie objstream = server.createObject ("adodb.stream")
mit objstream
.Type = 1 '
.Mode = 3 '
.Offen
. Schreiben Sie den Körper '
.Position = 0 '
.Type = 2 '
.CharSet = CSET '
ByTestObstr = .readText '
.Schließen
enden mit
objstream einstellen = nichts
Endfunktion
private Funktion Getbody (Surl)
Bei der nächsten Fehleraufnahme als nächstes
Dim xmlhttp
'Set xmlhttp = server.createObject ("msxml2.xmlhttp.4.0"))
'set xmlhttp = server.createObject ("microsoft.xmlhttp")
Setzen Sie xmlHttp = server.createObject ("msxml2.serverxmlhttp"))
XMLHTTP.Settimeouts 10000.10000.10000.30000
xmlhttp.open "get", surl, false
xmlhttp.send
Wenn xmlhttp.readyState = 4 dann
'Wenn xmlhttp.status = 200 dann
getBody = xmlhttp.ResponseBody
'Ende wenn
anders
Getbody = ""
Ende wenn
Wenn err.number <> 0 dann
serror = err.number
Err.clear
anders
serror = ""
Ende wenn
Setzen Sie xmlhttp = nichts
Endfunktion
Öffentliche Funktion SaveImage (Tofile, Isoverwrite)
Bei der nächsten Fehleraufnahme als nächstes
Dimer Objstream, ObjfSO, IMGS
Wenn nicht isoverwrite dann
Setzen Sie OBJFSO = Server.createObject ("Scripting.FilesSystemObject").
Wenn objfso.FileExists (server.mappath (toFile)) dann
Ausgangsfunktion
Ende wenn
Setzen Sie objfso = nichts
Ende wenn
IMGS = Getbody (Surl)
Setzen Sie objstream = server.createObject ("adodb.stream")
mit objstream
.Type = 1
.Offen
.schreiben Sie imgs
.Savetofile Server.Mappath (Tofile), 2
.Schließen()
enden mit
Setzen Sie Objstream = nichts
Endfunktion
Endklasse
%>
Bei dieser Art von Datei wird es viel bequemer sein, Dinge zu tun.
Anschließend können Sie die Webseitenstruktur der Sammlungswebsite analysieren und das Sammelprogramm schreiben.
Hier ist ein Beispiel:
<!-#include File = "conn.asp"->
<!-#include File = "Inc/xhttp_class.asp"->
<!-#include file = "inc/function.asp"->
<%
server.scripttimeout = 1000
%>
<html>
<kopf>
<meta http-äquiv = "content-type" content = "text /html; charset = gb2312" />
<title> BT Collector </title>