Hay muchos programas de recolección en línea ahora, pero a veces, cuando encuentra un buen sitio web y desea hacer una herramienta de recopilación para recopilar información, debe escribir el programa usted mismo. De hecho, tales programas de colección no son difíciles de escribir. Analizan principalmente la estructura web del sitio web de origen.
Primero descargue un archivo de clase XMLHTTP:
<%
Clase XHTTP
CSET privado, Surl, serror
Sub class_initialize () privado ()
'cset = "utf-8"
cset = "GB2312"
serror = ""
final
Sub class_terminate () privado ()
Final
Propiedad pública Sea URL (Theurl)
Surl = Theurl
propiedad final
Propiedad pública Get BasePath ()
Basepath = Mid (Surl, 1, Instrrev (Surl, "/")-1)
propiedad final
Propiedad pública Get FileName ()
FileName = Mid (Surl, Instrrev (Surl, "/")+1)
propiedad final
Propiedad pública Obtener html ()
Html = bytestobstr (GetBody (Surl))
propiedad final
Propiedad pública Get XHTTPERROR ()
xhttperror = serror
propiedad final
función privada bytestobstr (cuerpo)
En el currículum de error siguiente
'CSET: GB2312 UTF-8
dim objstream
Establecer objstream = server.createObject ("ADODB.Stream")
con objstream
.Type = 1 '
.Mode = 3 '
.Abierto
.
.Position = 0 '
.Type = 2 '
.Charset = cset '
Bytestobstr = .ReadText '
.Cerca
terminar con
establecer objstream = nada
Función final
Función privada GetBody (Surl)
En el currículum de error siguiente
Dim xmlhttp
'Establecer xmlhttp = server.createObject ("msxml2.xmlhttp.4.0")
'Establecer xmlhttp = server.createObject ("Microsoft.xmlhttp")
Establecer xmlhttp = server.CreateObject ("msxml2.serverXmlhttp")
xmlhttp.setTimeOuts 10000,10000,10000,30000
xmlhttp.open "Get", Surl, False
xmlhttp.send
Si xmlhttp.readyState = 4 entonces
'Si xmlhttp.status = 200 entonces
getBody = xmlhttp.ResponseBody
'Finalizar si
demás
getBody = ""
final si
Si err.number <> 0 entonces
serror = err.number
Err.Clear
demás
serror = ""
final si
establecer xmlhttp = nada
función final
Función pública SaveImage (Tofile, IsoverWrite)
En el currículum de error siguiente
Dim objstream, objfso, imgs
Si no es ISOverwrite entonces
Establecer objfso = server.createObject ("scripting.filesystemObject")
Si objfso.fileExists (server.mappath (tofile)) entonces entonces
Función de salida
Final si
Establecer objfso = nada
Final si
imgs = GetBody (Surl)
Establecer objstream = server.createObject ("ADODB.Stream")
con objstream
.Type = 1
.Abierto
.WRITE IMGS
.Savetofile Server.Mappath (tofile), 2
.Cerca()
terminar con
establecer objstream = nada
función final
clase final
%>
Con este tipo de archivo, será mucho más conveniente hacer las cosas.
Luego puede analizar la estructura de la página web del sitio web de la colección y escribir el programa de colección.
Aquí hay un ejemplo:
<!-#include file = "conn.asp"->
<!-#include file = "inc/xhttp_class.asp"->
<!-#include file = "inc/function.asp"->
<%
servidor.scripttimeout = 1000
%>
<html>
<Evista>
<meta http-equiv = "content-type" content = "text /html; charset = gb2312" />
<title> bt coleccionista </title>