Post on 29-Oct-2015
transcript
Web ScrapingJuan 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_red-flagged_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%5D=asc&sort_field%5B1%5D=ref&sort_order%5B1%5D=asc&accion=Buscar","list",7)
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)
1. Nombre del Dapp, descripcin y etiquetas (opcional)
2. Clasificamos el Dapp (privado o de prueba)
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 TomTwitter: @jjelosua