Tecnología

Inicio

Cómo extraer los enlaces en una página y poner el resultado en otro archivo con PHP

El lenguaje de programación PHP fue diseñado desde el principio para ser un lenguaje altamente uso en Internet, por lo que el deporte una serie de características que hacen que sea relativamente fácil de trabajar con datos a través de Internet. Una operación que puede realizarse sólo en una docena de líneas de código es el paso de los enlaces de una página y almacenándolos en un archivo local para su uso en otros lugares. Esto puede ser útil para aplicaciones tales como motores de búsqueda. Afortunadamente, el proceso es sencillo y sólo requiere unos minutos en completarse.

Instrucciones

1 Crear un nuevo archivo de texto en el editor de su elección. Pegar las siguientes etiquetas PHP en él pulsando la tecla "Ctrl" y "V" al mismo tiempo:

<? Php

?>

El código para el resto del tutorial irá entre estas dos etiquetas.

2 Pegue el siguiente en el archivo PHP para descargar la página web y almacenarlo en la memoria:

$ Gestor = fopen ( "http://www.domain.com/page.html", "r");

$ Page = stream_get_contents ($ gestor);

fclose ($ gestor);

3 Pegue el siguiente en el archivo PHP para analizar el contenido de la página y almacenar todos los eslabones de una matriz:

preg_match_all ( "/ d [\ s] +

[^>]? href [\ s]? = [\ s \" \ '] + "." (.?) [\ "\'] +.?>". "([^ <] + |.?) <\ / a> /?", $ var, y coincide $);

Este utiliza la sintaxis de expresiones regulares para analizar el texto de la página de búsqueda de direcciones URL dentro de una etiqueta <a href> y almacena los partidos en una matriz llamada $ partidos.

4 Pegue el siguiente en el archivo PHP para escribir todas las direcciones URL descubiertos en un archivo de texto, con cada URL en su propia línea:

$ = salida fopen ( "results.txt", "w");

foreach ($ partidos como $ url) {

fwrite($output, $url."\n");

}

fclose ($ salida);

Consejos y advertencias

  • Este script extrae hipervínculos. Sin embargo, si el texto de una URL está en una página, pero no es un enlace, será ignorado por este script.