El programa de recopilación en realidad llama a páginas web de otros sitios web a través del componente XMLHTTP en XML. Por ejemplo, muchos de los programas de recopilación de noticias llaman a las páginas web de noticias de Sina, y parte del HTML que contienen se reemplaza y los anuncios también se filtran. Las ventajas de utilizar un programa de recopilación son: no es necesario mantener el sitio web, porque los datos del programa de recopilación provienen de otros sitios web y se actualizarán a medida que se actualice el sitio web, lo que generalmente puede ahorrar recursos del servidor; El programa de recopilación solo tiene unos pocos archivos y todo el contenido web proviene de otros sitios web. Las desventajas son:
Inestable: 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 de recopilación también deberá modificarse en consecuencia, porque es una llamada remota y la velocidad es más lenta; que leer datos en el servidor local Definitivamente más lento.
1. Casos
La siguiente es una breve explicación de la aplicación de XMLHTTP en ASP.
Copie el código de código de la siguiente manera:
<%
'Funciones de uso común
'1. Ingrese la dirección URL de la página web de destino y el valor de retorno getHTTPPage es el código html de la página web de destino.
función getHTTPage(url)
dimHttp
establecer Http=servidor.createobject(MSXML2.XMLHTTP)
Http.open OBTENER,url,falso
http.enviar()
si Http.readystate<>4 entonces
función de salida
terminar si
getHTTPPage=bytesToBstr(Http.responseBody,GB2312)
establecer http=nada
si err.number<>0 entonces err.Clear
función final
'2. Convierta Ranma. Utilice xmlhttp directamente para llamar a páginas web con caracteres chinos. Lo que obtendrá será Ranma. Puede convertirlo a través del componente adodb.stream.
Función BytesToBstr(cuerpo)
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 = GB2312 'Convierte 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 dará como resultado un código confuso.
BytesToBstr = objstream.ReadText
objstream.Cerrar
establecer objstream = nada
Función final
'Intenta llamar al contenido html de http://www.google a continuación
URL atenuada, HTML
URL=http://www.google;
HTML = obtener página HTTP (URL)
Respuesta.escribir HTML
%>
2. Varias funciones de uso común
Función InStr
Descripción Devuelve la posición donde un determinado carácter (cadena2) aparece por primera vez en otra cadena (cadena1).
SintaxisInStr(cadena1, cadena2)
Por ejemplo:
Cadena de búsqueda tenue, carácter de búsqueda
SearchString =http://www.google ' La cadena a buscar.
SearchChar = blue1000 'Buscar blue1000.
MyBK = Instr(SearchString, SearchChar) ' Devuelve 8
'Devuelve 0 si no se encuentra, por ejemplo:
Carácter de búsqueda = BK
MyBK = Instr(SearchString, SearchChar) ' Devuelve 0
función media
Descripción: Devuelve el número especificado de caracteres de una cadena.
SintaxisMid(cadena, inicio, fin)
Por ejemplo:
Atenuar MyBK
MyBK = Mid (nuestro diseño de BK (www.google), 7, 12) 'Intercepta la cadena 12 caracteres después del séptimo carácter de nuestro diseño de BK (www.google)' En este momento, el valor de MyBK se convierte en www.google
Reemplazar función
Cadena de búsqueda tenue, carácter de búsqueda
SearchString = Nuestro diseño BK es una cadena de sitios web de recursos de creación de sitios web en la que se realizarán búsquedas.
SearchString =Replace(SearchString, BK design, Www.google)'En este momento, el valor de SearchString se convierte en nuestro Www.google es un sitio web de recursos de construcción de sitios web.
3. Intercepta el código HTML del área especificada.
Por ejemplo, sólo quiero obtener la parte de texto entre <td> y </td> en el siguiente código HTML:
<html>
<title>BK (www.google) Motor de búsqueda de Google</title>
<cuerpo>
<tabla>
<tr><td></td></tr>
<tr><td id=Content>BK (www.google) El motor de búsqueda de Google es un sitio con muchos recursos...</td></tr>
</tabla>
</cuerpo>
</html>
<%
…
Dim StrBK, empezar, volver, RsBK
StrBK=getHTTPPage (la dirección de la página web)
start=Instr(StrBK,<td id=Content>) 'La función aquí es obtener la posición del comienzo de la cadena. Alguien va a preguntar aquí: el código original es <td id=Content>, ¿por qué llamas <td id=Content> aquí? Respuesta: en asp (para ser precisos, está representado por dos comillas dobles en VBscript. ¿Un doble? cita, porque las comillas dobles son un carácter sensible para el programa.) over=Instr(StrBK,…</td></tr>)'La función aquí es obtener la posición del final de la cadena. 'Alguien va a preguntar nuevamente aquí :( : ¿Por qué hay tres puntos adicionales delante del código HTML que el programa llama...? Respuesta: Consejo: También hay un </td></tr> en lo anterior línea, si usa </td></ tr> para localizar, el programa considerará erróneamente </td></tr> en la línea anterior como el final de la cadena que se obtendrá RsBK=mid(StrBK,start, sobre-arranque). 'La función aquí es extraer la cadena entre el carácter inicial y el carácter superior en StrBK. También hablé de la función intermedia en la sección anterior para calcular la distancia entre la posición inicial y la posición final. , es decir, el número de caracteres.
respuesta.write(RsBK) 'Finalmente genera el contenido obtenido por el programa
%>
No estés demasiado contento. Cuando lo ejecutes, encontrarás que hay un error en el código html de la página. Porque el código html que obtuviste es: <td id=Content>BK (www.google) El buscador de Google es un sitio con muchos recursos...
¿Viste eso? ¡Hay código HTML incompleto! ¿Qué hacer? La sentencia start=Instr(StrBK,<td id=Content>) obtiene el contenido de <td id=Content> en
El número de posición en StrBK, ahora podemos agregar 17 después de la declaración del programa, luego el programa señalará la posición al carácter después de <td id=Content>.
Bien, el programa cambiará a esto:
<%
…
Dim StrBK, empezar, volver, RsBK
StrBK=getHTTPPage (la dirección de la página web)
inicio=Instr(StrBK,<td id=Contenido>) + 17
over=Instr(StrBK,…</td></tr>) 'Aquí también puedes restar siete (-7) para quitar 3 puntos
RsBK=mid(StrBK,inicio,sobreinicio)
respuesta.escribir(RsBK)
%>
Esto está bien, podemos robar lo que queramos y mostrarlo en nuestra propia página, jaja ~
4. Eliminar o modificar los caracteres obtenidos.
Reemplace BK(www.google) en RsBK con BK:
RsBK=reemplazar(RsBK,BK(www.google),BK)
O eliminar (www.google) directamente:
RsBK=reemplazar(RsBK,(www.google),)
Bien, ahora RsBK se convierte en: BK El motor de búsqueda de Google es un sitio con muchos recursos... Pero, de hecho, la función de reemplazo puede no ser adecuada para algunas situaciones. Por ejemplo, queremos reemplazar todas las conexiones en una determinada cadena. Las conexiones pueden incluir muchos tipos y reemplazar solo puede reemplazar una específica de ellas, no podemos reemplazarla con una función de reemplazo correspondiente, ¿verdad?