Como obtener el title, description y keywords de una web con PHP

Scrapping de una página web

Publicado en PHP 2018-09-14 12:36:08

Como obtener el title, description y keywords de una web con PHP

Scrapping de una página web con PHP

Diseño Web Php HTML

Resumen: Escanear una web es fácil con la clase curl de PHP, extraeremos los metas de titulo, descripción y palabras, etiquetas posicionamiento web de la página web

El scrapeo o scrapping de contenidos en páginas es algo fascinante, talvez por que es la forma que Google escanea y extrae información de la páginas web para guardarlas en sus servidores, no si antes clasificarlas e indexarlas, obviamente para ello utiliza diferentes algoritmos de búsqueda y clasificación. 

Lo que intentaremos hacer es crear un pequeño aplicativo que scrapea cualquier página web, claro está si esta no tiene restricciones y si ésta es accesible por la pequeña araña que programaremos, el código es bastante sencillo, indicarles que hay librerías mucho mas sofisticadas y con mayor número de funcionalidades.

Empezaremos creando un archivo index.php donde colocaremos un formulario get en html con un campo de tipo text y un boton submit, veamos el código:

<form>
		<input type="url" name="url" placeholder="Ej. http://www.empresa.com" required>
		<button name="btn" type="submit">SCRAPEAR</button>		
</form>

Implementaremos dos funciones, la primera file_get_contents_curl($url), esta función se conectará mediante la clase curl y nos retornará el contenido de la web a través de la url:

function file_get_contents_curl($url){
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
      $data = curl_exec($ch);
      curl_close($ch);
      return $data;
}

La segunda función limpiará una cadena de caracteres que no deseamos:

function limpiarString($String){ 
     $String = str_replace(array("|","|","[","^","´","`","¨","~","]","'","#","{","}",".",""),"",$String);
     return $String;
}

Siguiendo con la funcionalidad de la aplicación: una vez enviada la url con el formulario debemos parsear el contenido para poder extraer los metas

  • Title
  • Description
  • Keywords

Estos metas permiten que su página web sea indexable de forma óptima y asi aparecer en los resultados de búsqueda de Google y cualquier otro buscador como Yahoo, Bing, Ask, Altalaweb, etc.

    $url 	=	$_GET['url'];
	$html 	= 	file_get_contents_curl($url);                    
    $doc 	= 	new DOMDocument();
    @$doc->loadHTML($html);
    $nodes 	= 	$doc->getElementsByTagName('title');
    $title 	= 	limpiarString($nodes->item(0)->nodeValue);
    $metas 	= 	$doc->getElementsByTagName('meta');
    for ($i = 0; $i < $metas->length; $i++):
		$meta = $metas->item($i);
        if($meta->getAttribute('name') == 'description')
        	$description = limpiarString($meta->getAttribute('content'));
        if($meta->getAttribute('name') == 'keywords')
        	$keywords = limpiarString($meta->getAttribute('content'));
    endfor;
	echo "TITLE :<br>".$title."<br>";
    echo "DESCRIPTION :<br>".$description."<br>";
    echo "KEYWORDS :<br>".$keywords;

Y listo, hasta aquí ya podemos hacer scrapping de cualquier página web!!

Descarga el código fuente del proyecto web CLICK AQUI

Redacción:| Artículo leído: 89 veces | Publicación:


Compártelo con tus amigos


Publicaciones relacionadas de PHP