Il existe de nombreux programmes de collecte en ligne maintenant, mais parfois lorsque vous trouvez un bon site Web et que vous souhaitez vous faire un outil de collecte pour collecter des informations, vous devez rédiger le programme vous-même. En fait, ces programmes de collecte ne sont pas difficiles à écrire. Ils analysent principalement la structure Web du site Web source.
Téléchargez d'abord un fichier de classe XMLHTTP:
<%
Classe XHTTP
CSET privé, Surl, Serror
Private Sub class_Initialize ()
'cset = "utf-8"
cset = "gb2312"
serror = ""
Sub-Sub
Private Sub class_termiate ()
Sub-Sub
Propriété publique Let URL (TheUrl)
Surl = theurl
propriété finale
Propriété publique Get Basepath ()
BASEPATH = MID (surl, 1, instrrrev (Surl, "/") - 1)
propriété finale
Propriété publique Get FileName ()
FileName = Mid (Surl, instrrrev (Surl, "/") + 1)
propriété finale
Propriété publique Get Html ()
Html = byTestobstr (getbody (Surl))
propriété finale
Propriété publique Get xhttperror ()
xhttperror = serror
propriété finale
fonction privée bytestobstr (corps)
sur l'erreur reprendre ensuite
'CSET: GB2312 UTF-8
objstream sombre
Définir objstream = server.createObject ("adodb.stream")
avec objstream
.Type = 1 '
.Mode = 3 '
.Ouvrir
. Écriture du corps '
.Position = 0 '
.Type = 2 '
.Charset = CSET '
ByTestObstr = .readText '
.Fermer
se terminer avec
définir objstream = rien
Fonction finale
fonction privée getbody (Surl)
sur l'erreur reprendre ensuite
DIM XMLHTTP
'SET XMLHTTP = Server.CreateObject ("msxml2.xmlhttp.4.0")
'SET XMLHTTP = Server.CreateObject ("Microsoft.xmlhttp")
définir xmlhttp = server.createObject ("msxml2.serverxmlhttp")
xmlhttp.settimeouts 10000,10000,10000,30000
xmlhttp.open "get", Surl, false
xmlhttp.send
Si xmlhttp.readystate = 4 alors
'Si xmlhttp.status = 200 alors
getBody = xmlhttp.ResponseBody
'fini si
autre
getbody = ""
terminer si
Si err.number <> 0 alors
serror = err.number
Err.Clear
autre
serror = ""
terminer si
définir xmlhttp = rien
fonction finale
SaveImage des fonctions publiques (Tofile, Isoverwrite)
sur l'erreur reprendre ensuite
DIM OBJSTREAM, OBJFSO, IMGS
Si ce n'est pas iSoverwrite alors
Set objfso = server.createObject ("scripting.fileSystemObject")
Si objfso.fileexists (server.mappath (tofile))
Fonction de sortie
Terminer si
Définir objfso = rien
Terminer si
imgs = getbody (Surl)
Définir objstream = server.createObject ("adodb.stream")
avec objstream
.Type = 1
.Ouvrir
. Écriture IMGS
.SavetoFile Server.mappath (tofile), 2
.Fermer()
se terminer avec
définir objstream = rien
fonction finale
classe finale
%>
Avec ce type de fichier, il sera beaucoup plus pratique de faire des choses.
Ensuite, vous pouvez analyser la structure de la page Web du site Web de la collection et écrire le programme de collection.
Voici un exemple:
<! - # Inclure file = "Conn.asp" ->
<! - # Inclure file = "Inc / xhttp_class.asp" ->
<! - # inclue file = "inc / function.asp" ->
<%
server.scriptTimeout = 1000
%>
<html>
<adal>
<meta http-equiv = "content-type" content = "text / html; charset = gb2312" />
<Title> BT Collector </Title>