You are on page 1of 27

Web Scraping

Juan Elosua Tom (@jjelosua)

Quin soy?
Juan Elosua Tom (Twitter: @jjelosua) Ingeniero de Telecomunicaciones que trabaja como
desarrollador freelance con experiencia en anlisis y visualizaciones de datos. Algunos proyectos en los que he colaborado: El indultmetro Espaa en Llamas Donde van mis impuestos - Parte autonmica Infoamazona: Ganado vs. Deforestacin

Contenido
Introduccin Web scraping Demo dapper ScraperWiki Conclusiones

Introduccin
Definicin Scraping: Conjunto de tcnicas necesarias para extraer informacin de uno o varios lugares (web, pdf, ...) hacia un formato ms adecuado para su procesamiento. Si tratamos con datos complejos, lamentablemente en la actualidad se requiere tener conocimientos de programacin, ya que no hay herramientas suficientemente maduras y "usables"

Web scraping - Introduccin


Definicin: Extraer datos de pginas web. El proceso se puede dividir en dos partes:
a. Navegacin entre pginas: Normalmente el contenido que queremos extraer est alojado en mltiples pginas web por lo que debemos navegar entre ellas (Paginacin, gran cantidad de datos,...) b. Extraccin de informacin de una pgina: En cada pgina debemos seleccionar qu elementos son los que queremos obtener

Desde la compra de Needlebase por parte de Google las alternativas sin conocimientos de programacin son limitadas.

Web scraping - Navegacin (I)


En la actualidad ste es el subproceso que no cuenta con alternativas integradas de cara a su automatizacin. Selenium IDE - plugin Firefox:
Originalmente creado para procesos de testing Permite grabar navegaciones ~ macros Excel

Web scraping - Navegacin (II)


Pantallazo Selenium IDE

ScraperWiki est al menos barajando la posibilidad de incluir la integracin de selenium con scraperWiki Al menos Francis Irving CEO de ScraperWiki ha hecho alguna prueba de ello

Web scraping - Extraccin


Para la extraccin existen varias soluciones sencillas para no programadores. Mostramos a continuacin algunas referencias bsicas:
Table Capture (Chrome) Table2Clipboard (Firefox) Scraper (Chrome) Google docs - ImportHTML

Dapper - Propiedad de yahoo, permite extracciones ms completas y personalizadas (requiere registro)

Web scraping - GD ImportHTML (I)


Wikipedia - Formula 1 lista de banderas rojas

Web scraping - GD ImportHTML (II)


=importHTML("http://en.wikipedia.org/wiki/List_of_redflagged_Formula_One_races","table",4)

Web scraping - GD ImportHTML (III)


BOE - Lista de indultos 2013

Web scraping - GD ImportHTML (IV)


=importHTML("http://www.boe. es/buscar/boe.php? frases=no&campo%5B1% 5D=DOC&dato%5B1% 5D=Indulto&operador%5B1% 5D=and&campo%5B2% 5D=TIT&dato%5B2% 5D=&operador%5B2% 5D=and&campo%5B3% 5D=DEM&dato%5B3% 5D=&operador%5B3% 5D=and&campo%5B4% 5D=NBO&dato%5B4% 5D=&operador%5B4% 5D=and&campo%5B5% 5D=NOF&dato%5B5% 5D=&operador%5B5% 5D=and&operador%5B6% 5D=and&campo%5B6% 5D=FPU&dato%5B6%5D%5B0% 5D=01%2F01%2F2013&dato%5B6% 5D%5B1%5D=31%2F12% 2F2013&sort_field%5B0% 5D=fpu&sort_order%5B0%

Web scraping - dapper (I)


1. Nos registramos e iniciamos sesin

2. Introducimos URL

Web scraping - dapper (II)


1. Seleccionamos de forma itrerativa los campos que queremos extraer 2. Guardamos

Web scraping - dapper (III)


1. Clasificamos los campos en grupos 2. Guardamos

Web scraping - dapper (IV)

2. Clasificamos el Dapp (privado o de prueba) 1. Nombre del Dapp, descripcin y etiquetas (opcional) 3. Guardamos

Web scraping - dapper (V)

1. Elegimos formato de salida

Web scraping - dapper (VI)

1. Guardamos el csv generado

Demo dapper - Resultados Formula1


Hagamos un pequeo ejercicio para sacar los datos de las ltimas temporadas de Formula1. Podra servirnos para responder preguntas:
La formula 1 es ms rpida cada ao? Qu Piloto ha ascendido ms posiciones en carrera durante el 2012?

Vamos all!!

Web scraping - dapper Avanzado (I)


Es posible enlazar un dapp con otro dapp de forma que podamos obtener resultados combinados de ambas fuentes. Se pueden extraer partes concretas de un elemento HTML. Se puede combinar dapper con funciones de importacin de datos en googleDocs para mejorar la eficacia de la extraccin.

Web scraping - dapper Avanzado (II)

Seleccionamos proyecto y que variable utilizaremos para combinar

Web scraping - dapper Avanzado (III)

Web scraping - scraperWiki (I)


Permite escribir programas de web scraping en varios lenguajes de programacin o tambin pagarles para que hagan el web scraping por ti.

Web scraping - scraperWiki (II)


La ventaja principal de scraperWiki es que te permite ver ejemplos de scrapers hechos por otras personas y copiarlos como modelo.

Web scraping - scraperWiki (III)


Un ejemplo para extraer disposiciones BOE

Conclusiones - Web Scraping


Las URLs son tus amigas..revsalas!!... busca patrones...como John Nash en una mente maravillosa
a. Ejemplo: Indultos BOE

Si queris hacer un scraping complejo y no sabis programar:


a. Localizad a algn amigo/ciudadano comprometido que sepa hacerlo si vuestra tarea es compleja. b. Aprended a programar web scrapers sencillos buscando ejemplos en scraperWiki

Gracias!!
Dudas o preguntas? Juan Elosua Tom Twitter: @jjelosua