Cargando



Web Scraping: Formas de extraer datos Web

En este tutorial conocerás de forma completa qué significa hacer Web Scraping. La variedad de herramientas disponibles para hacer este tipo de trabajo y cuál es la manera correcta de elegirlo y realizarlo.


may 08 2016 00:26
Profesional
may 08 2016 00:30

ScraperWiki

 

Es posible que probando las técnicas anteriores no hayas tenido buenos resultados. Esto va a depender de la Web en cuestión por razones como:

  • Código HTML mal estructurado o desarrollados en FLASH.
  • Sistemas de verificación con códigos CAPTCHA o exigencias de suscripción para acceder a la información.
  • Ausencia de listados completos de páginas.
  • Bloqueo de acceso a los servidores por los administradores del sistema.
  • El fichero robots.txt contiene entradas que filtran el acceso a robots.

 

También es posible que necesites realizar procesos más complejos que requieran de tu manipulación como:

  • Tomar datos de varias páginas Web.
  • Limpiar una Base de Datos compleja.

 

En ese escenario, la única salida es emplear Python, Ruby o PHP para el Scraping de la Web. Para ello, existe una plataforma llamada ScraperWiki que ofrece un entorno de programación amigable.
Puedes escribir scrapers, que son opcionales y los datos están disponibles para cualquiera, o puedes pedirlos. Esta opción no es gratuita, pero te podrás poner en contacto con la comunidad de Scraperwiki y alguno de sus miembros podría interesarse en tu proyecto y colaborarte. Solo debes entrar en la URL que se indica a continuación:

 

imagen27.jpg

 

Scraping con PHP


Para los que tienen conocimiento en programación, usar PHP para aplicar esta técnica de obtención de datos es una forma sencilla y altamente configurable para hacerlo.
Para ello debes conocer las siguientes funciones:
  • file_get_contents: esta función tiene como parámetro de entrada una URL y devuelve el contenido de ésta en HTML.
  • preg_match: esta función sirve para encontrar coincidencias dentro de una cadena, usando expresiones regulares.

 

En el ejemplo a mostrar a continuación, vamos a extraer el título de la web que hemos venido utilizando (http://www.realmadri...l-madrid/agenda), que se encuentra ubicado en la etiqueta HTML <title>:

$html = file_get_contents('http://www.realmadrid.com/sobre-el-real-madrid/agenda'); 
	preg_match('/<title>(.*)<\/title>/', $html, $title);
	$title_out = $title[1];
	echo $title_out;
	echo "<hr />";
	var_dump($title);
El resultado es el siguiente:

 

 

imagen28.jpg

 

 

A partir de aquí, solo debes ser creativo a la hora de formular tus scrapers, algo de mucha ayuda es utilizar el inspector de elementos ya sea de Chrome o de Firefox, esto te permite determinar de qué forma puedes acceder a cada dato ya sea por el ID del elemento, por los TAGs html, por el class, etc.

 

Ambos exploradores utilizan la opción de búsqueda por XPath (XML Path Language) el cual es un lenguaje que permite construir expresiones que recorren y procesan un documento XML. La idea es parecida a las expresiones regulares para seleccionar partes de un texto sin atributos (plain text). XPath permite buscar y seleccionar teniendo en cuenta la estructura jerárquica en nuestro caso del documento HTML como si fuera un árbol.


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X