Interceptar el código fuente del sitio web
En la actualidad, la mayoría de las colecciones de páginas web son código 3P (3P es ASP, PHP, JSP). El sistema de recopilación de noticias más representativo del BBS de Yidongyi Technology Company y el sistema de recopilación de noticias Sina que circula en Internet son utilizados por programas ASP, pero en teoría la velocidad no es muy buena. ¿Es más rápido intentar la adquisición de subprocesos múltiples con otro software? La respuesta es sí. Puedes usar DELPHI, VC, VB, JB, pero PB parece difícil de hacer. DELPHI se utiliza a continuación para ilustrar la recopilación de datos de páginas web.
Primero, colección de noticias simple
La colección de noticias es la más simple, siempre que identifiques el título, subtítulo, autor, fuente, fecha, tema de la noticia y paginación. Debe obtener el contenido de la página web antes de recopilarlo, así que agregue el control idHTTP en DELPHI (en el panel Clientes indy) y use idHTTP1. Método GET para obtener el contenido de la página web. La declaración es la siguiente:
Función Get(AURL:string):string; sobrecarga;
Parámetro AURL, tipo de cadena, especifica la cadena de dirección URL. Esta función devuelve una cadena que devuelve el archivo fuente HTML de la página web. Por ejemplo, podemos llamarlo así:
tmpStr:= idHTTP1. get("">
& ltmeta name = " GENERADOR " contenido = " Microsoft front page 5.0 "
& ltmeta name = " ProgId " content = " portada. Editor .Document " >
& ltmeta/test . htm'); Guarde el código de la página web en la variable strsource.
Luego defina strTitle, strAuthor, strCopyFrom, strContent:
strTitle:= GetStr(StrSource, ' & ltp align="center " >& ltb & gt', ' & lt/ b></p>'):
strAuthor:= GetStr(StrSource,'<tr><td width="60%">,'</TD> '):
strCopyFrom: = GetStr(StrSource,'<td width="40%">,'</TD></tr>'):
strContent:= GetStr(StrSource,'<p><font size="2">, '</font></p>'):
Esto es. El título, subtítulo, autor, fuente, fecha, contenido y paginación del artículo se pueden almacenar en las variables anteriores respectivamente.
El segundo paso es abrir la siguiente página en un bucle, obtener el contenido y agregarlo a la variable strContent.
StrSource:= idHTTP1. get(' new _ ne . ASP ');
str content:= str content+GetStr(StrSource, ' & ltp & gt& ltfont size="2 " >, ' & lt/font & gt; </p>'):
Luego determine si hay una página siguiente y, de ser así, obtenga el contenido de la página siguiente.
Esto completa un proceso de interceptación simple. Como se puede ver en el código del programa anterior, todos los métodos de interceptación que utilizamos son para encontrar el principio y el final del contenido interceptado. ¿Qué pasa si hay varias caras y cruces? Parece que no hay manera, solo se encontrará el primero, por lo que debe verificar si solo hay un lugar para el anverso y el reverso del contenido interceptado, y luego buscarlo.
-
Espero que pueda ayudarte un poco :)