Introducción a la extracción de datos de sitios web: scraping
Scraping es un término que, traducido al español, literalmente quiere decir “rascado”. Sin embargo, en este contexto, se refiere a la limpieza y filtro de los datos.
Introducción
Muchas veces los datos no están a un clic, como nos gustaría. O están en formatos que no siempre sabemos manejar. La mayoría de los datos no están siquiera en un formato uniforme. ¿Cómo le podrías hacer si quieres usar los datos para combinarlos con otra base de datos y analizarlos de manera independiente?
¡El scraping al rescate!
Scraping es un método que te permite extraer datos escondidos en un documento, como páginas web y PDF, y los hace útiles para usarlos después. Es fácil de llevar a cabo, y para hacer scraping, afortunadamente no tienes que saber nada de programación.
Para explicarte como hacer scraping, usaremos Google Chrome. Otros servidores también son útiles; sin embargo, estaremos usando una aplicación exclusiva de Chrome.
Scraping en 5 minutos usando Google Spreadsheets y Google Chrome
Conocer la estructura de una página web es el primer paso para extraer y usar los datos. Pasa tus datos a una hoja de cálculo para que los uses después. Una manera muy fácil de hacer esto es con una fórmula en Google Spreadsheets.
Ahorra miles de horas copiando y pegando con el comando ImportHTML en Google Spreadsheets. ¡Es maravilloso!
Pasos
Para que puedas completar la próxima tarea, entra a las siguientes direcciones:
-
Extracting data from HTML tables (en inglés)
-
Scraping usando la Scraper Extension for Chrome.
Los dos métodos sirven para:
-
Extraer listas o tablas de una sola página web.
-
El segundo link te puede traer más problemas, ya que debes usar información cruzada. Revisa los tips para que te dés una mejor idea.
Si no entiendes:
-
Extrae datos de muchas bases de datos de diferentes páginas web.
Reto
Tarea: Encuentra una página web con una tabla y obtén información de ella.
Tip
Una vez que tengas la tabla en tu hoja de cálculo, lo más seguro es que quieras jugar con los datos o cambiarlos de hoja. Haz clic en el botón superior izquierdo y selecciona paste special (pegado especial) y luego paste values only (pegar sólo valores).
Scraping más de una página web: Scraperwiki
Nota: Antes de instalarte en el modo scraping, primero debes entender cómo son las páginas web. Lee Introduction to HTML recipe (en inglés) en el manual.
Hasta ahora, sólo hemos utilizado datos de una sola página web. ¿Y qué si son más? ¿O si quieres limpiar los datos de una base compleja? Tienes que aprender un poco de programación.
Va más allá de las metas de este tutorial enseñarte a hacer scraping. El objetivo es ayudarte a entender que vale mucho invertir tu tiempo en la investigación y el estudio de las herramientas que te hacen la vida más fácil para cumplir con este gran objetivo.
La estructura de la limpieza de datos o scraper
Scrapers se compone de tres partes:
-
De una página web para hacer scraping;
-
Un lugar donde puedas guardar tus datos: por ejemplo, una base de datos;
-
Un downloader y un analizador que agregue URLs a la información contenida en la base de datos.
Afortunadamente, existe una página web para programar scrapers: ScraperWiki.com
ScraperWiki tiene dos funciones principales: Puedes escribir scrapers – que son opcionales, y los datos están disponibles para cualquiera– o los puedes pedirlos. Esta opción no es gratuita, pero te podrás poner en contacto con la comunidad de Scraperwiki (Google Group), y alguno de sus miembros podría interesarse en tu proyecto y ayudarte. Si te interesa escribir scrapers con Scraperwiki, dale un vistazo a estos ejemplos – depura algunos datos del parlamento Parliament. Haz clic en View source para ver más detalles.
También checa los docuemntos de Scraperwiki en https://scraperwiki.com/docs/python/
¿Cuándo debo hacer la inversión para aprender a hacer scraping?
Algunas razones (¡aunque hay más!):
-
Si tienes que extraer datos de una sola página que contenga muchas tablas y, por lo tanto, muchos números.
-
Si tu información está dispersa en múltiples bases de datos, o si la información es liberada cada semana o mes.
-
Si quieres recibir alertas de email si cambian las base de datos que generalmente usas.
-
…¡Y si no le quieres pagar a nadie para que lo haga por ti!
Resumen
En este curso hablamos sobre Web scraping y cómo extraer datos de las páginas web. La función básica del scraping es la de convertir datos que son semi-estructurados en estructurados para hacerlos fáciles de leer y aplicar. Esta tarea es relativamente sencilla si sabes algo de programación; para páginas muy sencillas, no necesitas saber programar. Te enseñamos el comando =importHTML y la extensión Scraper para las necesidades que tengas.
Lecturas complementarias (en inglés)
-
Scraping for Journalism: A Guide for Collecting Data: ProPublica Guides
-
Scraping for Journalists (ebook): Paul Bradshaw
-
Scrape the Web: Strategies for programming websites that don’t expect it : Talk from PyCon
-
An Introduction to Compassionate Screen Scraping: Will Larson