El ladrón mencionado aquí se refiere al uso de las poderosas funciones proporcionadas por el componente XMLHTTP en XML en ASP para capturar los datos (imágenes, páginas web y otros archivos) en el sitio web remoto al local y mostrarlos en la página después de varios procesamientos. un tipo de programa que se almacena en una base de datos. Puede utilizar este tipo de programa ladrón para completar algunas tareas que parecían completamente imposibles en el pasado, como cambiar las páginas de un determinado sitio web y convertirlas en sus propias páginas, o guardar algunos datos (artículos, imágenes) de un determinado sitio web. para ser utilizado en la base de datos local. Las ventajas de Thief son: no es necesario mantener el sitio web, porque los datos del programa Thief provienen de otros sitios web y se actualizarán a medida que se actualice el sitio web, lo que generalmente puede ahorrar muchos recursos del servidor. El programa ladrón solo tiene unos pocos archivos y todo el contenido web proviene de otros sitios web. Las desventajas son: inestabilidad: si el sitio web de destino falla, el programa también fallará, y si el sitio web de destino se actualiza y mantiene, la velocidad del programa ladrón también deberá modificarse en consecuencia, porque es una llamada remota; la velocidad es tan rápida como leer datos en el servidor local. Definitivamente es más lento que eso. ¿Qué te parece? Suena increíble, ¿verdad? ¡Comencemos ahora a aprender algunos conocimientos introductorios sobre el programa de ladrones!
Estudiemos algo más sencillo, el programa de previsión meteorológica en el sitio web de QQ.
El código es el siguiente:
<%
En caso de error Continuar siguiente
Servidor.ScriptTimeOut=9999999
Función getHTTPage(Ruta)
t = ObtenerCuerpo(Ruta)
getHTTPPage=BytesToBstr(t,GB2312)
Función final
' Primero, realice algunas configuraciones de inicialización para el programa ladrón. Las funciones de los códigos anteriores son ignorar todos los errores no fatales y establecer el tiempo de espera de ejecución del programa ladrón en un tiempo muy largo (para que no se produzcan errores de tiempo de espera de ejecución). Y convierta la codificación UTF-8 predeterminada original a la codificación GB2312. De lo contrario, el uso directo del componente XMLHTTP para llamar a una página web con caracteres chinos generará un código confuso.
Función GetBody(url)
en caso de error reanudar siguiente
Establecer recuperación = CreateObject(Microsoft.XMLHTTP)
Con recuperación
.Abrir Obtener, URL, Falso, ,
.Enviar
ObtenerCuerpo = .ResponseBody
Terminar con
Establecer recuperación = nada
Función final
'Luego llame al componente XMLHTTP para crear un objeto y realizar la configuración inicial.
Función BytesToBstr(cuerpo,Cset)
corriente de objetos tenue
establecer objstream = Server.CreateObject(adodb.stream)
objstream.Tipo = 1
objstream.Modo =3
objstream.Abrir
objstream.Escribir cuerpo
objstream.Posición = 0
objstream.Tipo = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Cerrar
establecer objstream = nada
Función final
Función Nuevacadena(wstr,cadena)
Nuevacadena=Instr(lcase(wstr),lcase(cadena))
si Nuevacadena<=0 entonces Nuevacadena=Len(wstr)
Función final
'Para procesar los datos capturados, debe llamar al componente adodb.stream y realizar la configuración de inicialización. %>
'La siguiente es la parte de visualización de la página.
<%
Dim wstr,str,url,inicio,sobre,ciudad
'Definir algunas variables que deben usarse
ciudad = Solicitud.QueryString(id)
'La variable ID devuelta por el programa (es decir, la ciudad seleccionada por el usuario) se asigna a id
url=http://appnews.qq.com/cgi-bin/news_qq_search?city=&city&
'Aquí establezca la dirección de la página que debe rastrearse. Por supuesto, también puede especificar una dirección directamente sin utilizar variables.
wstr=getHTTPage(url)
'Obtiene todos los datos de la página especificada
inicio=Nuevacadena(wstr, <html>)
'Aquí se establece el encabezado de los datos que deben procesarse. Esta variable debe configurarse de acuerdo con diferentes situaciones. El contenido específico se puede determinar viendo el código fuente de la página que debe rastrearse. Debido a que necesitamos rastrear toda la página en este programa, lo configuramos para que rastree todas las páginas. Tenga en cuenta que el contenido establecido debe ser exclusivo del contenido de la página y no se puede repetir.
over=Nuevacadena(wstr, </HTML>)
'Correspondiente al inicio es la cola de los datos que deben procesarse. Del mismo modo, el contenido establecido debe ser único en la página.
cuerpo = medio (wstr, inicio, inicio excesivo)
'Establece el rango de páginas mostradas
'Ahora es el momento de usar Qiankun Shift +++. Mediante el reemplazo, puede reemplazar los caracteres especificados en los datos con algunos caracteres.
cuerpo = reemplazar (cuerpo, piel1, pronóstico del tiempo-Red de piel)
cuerpo = reemplazar (cuerpo, http://appnews.qq.com/cgi-bin/news_qq_search?city,tianqi.asp?id)
'El trabajo de reemplazo se ha completado en este programa. Si hay otras necesidades, puede continuar realizando operaciones de reemplazo similares.
respuesta.escribir cuerpo
%>
Después de reemplazar el contenido que debe modificarse, el contenido modificado se puede mostrar en la página. Este es el final del proceso.
Uso y resultados del programa: elimine la parte de descripción del código anterior y guárdelo como tianqi.asp, cárguelo en un espacio que admita ASP y XML y ejecútelo en el navegador. Puede embellecer aún más la interfaz u optimizar el programa basándose en este programa.
Las anteriores son solo algunas aplicaciones básicas del componente XMLHTTP. De hecho, también puede implementar muchas funciones, como guardar imágenes remotas en el servidor local y utilizar el componente adodb.stream para guardar los datos adquiridos en la base de datos. Thief tiene una amplia gama de funciones y usos. ¡Pero no puedes usarlo para hacer cosas ilegales!
Quizás algunas personas todavía quieran preguntar: ¿este tipo de programa ladrón es solo una patente de ASP? No, PHP puede lograr el mismo efecto a través de la función fopen. Debido a las diversas características del propio PHP, el programa ladrón escrito tiene ventajas obvias en tamaño y eficiencia de ejecución en comparación con ASP. Sin embargo, debido a limitaciones de espacio, no lo haré aquí. Explícalos uno por uno.