Web Scraping sencillo
Ayer expliqué cómo importar tablas y listas desde sitios web a Google Sheets. Hoy voy a explicar la manera más sencilla que conozco de hacer web scraping.
Si usás Chrome, podés descargar la extensión Web Scraper
Como ejemplo, vamos a usar el la [lista de los 40 principales de Argentina] (http://los40.com.ar/lista40/). Si una vez en el sitio, hacemos click derecho, en inspeccionar, nos va a aparecer un cuadro como el que aparece en la parte inferior de la imagen.
Si vamos a la pestaña llamada Web Scraper, podemos crear nuestro mapa del sitio en la sub pestaña Create new site map.
Para esto, vamos a: darle nombre a nuestro mapa en donde dice Sitemap name (en este caso, lo vamos a nombrar "los40"), y a copiar y pegar la URL del sitio en Start URL. Una vez que hicimos eso, creamos el mapa haciendo click en Create Sitemap.
Ahora, nos va a aparecer el site map "los 40". Si hacemos click, vamos a pasar a la siguiente etapa en la que podemos crear nuestros selectores.
En este caso, cada uno de los 40 éxitos principales está ubicado en una caja, que es un elemento. Entonces, para seleccionar cada caja debemos hacer click en Add new selector.
En la nueva pestaña vamos a encontrarnos con algo así:
En id identificamos el elemento (box), en type especificamos el tipo(en este caso, element), marcamos la casilla Multiple porque vamos a seleccionar varias "cajas" y hacemos click en Select para seleccionar.
Hacemos click en la primera caja (que antes de clickear aparece en color verde, y después en rojo) y cuando hagamos click en la segunda la selección va a completarse en todas las "cajas" que restan.
Una vez que hicimos esto, hacemos click en Done selecting y guardamos lo que hicimos clickeando Save selector.
Para guardar los elementos que están dentro de las cajas (posición en el ranking, imagen del disco al que pertenece la canción, artista, y álbum) debemos hacer algo parecido a lo de recién, pero cambian algunas cosas.
Vamos a los ejemplo que contienen texto (o sea, todo lo que mencioné recién excepto la imagen del disco.
Creamos un nuevo selector, para lo que otra vez debemos hacer click en Add new selector, y vamos a completa otra vez el id, en este caso usé "song" y al ser elemento de texto en Type indicamos Text.
Como ya seleccionamos las "cajas" que contienen a los 40 principales, y todos estos elementos corresponden a nuestro primer elemento box, hay que seleccionar elementos múltiples, así que seleccionamos Multiple y en *Parent Selectors debemos estar seguros de que ubicamos a este elemento dentro de box.
Una vez que hicimos esto, hacemos click en Select y seleccionamos el título de la primera canción, y al clickear la segunda se van a seleccionar todas. Hacemos click en done selecting y guardamos todo lo que hicimos con Save selector.
El mismo proceso se aplica al resto de los elementos de texto: posición en el ranking, artista y álbum.
Al momento de guardar las imágenes de la tapa de los singles o los discos, en type seleccionamos Image, y el resto del proceso es igual.
Una vez que hicimos todo esto, vamos a Sitemaplos40 (o el nombre que le hayamos dado) y hacemos click en Scrape. Vamos a dejar los valores por default y a clickear Start scraping.
Una vez que lo hicimos, actualizamos con refresh. Si vemos el Sitemap que creamos, queda así:
Y podemos exportar lo que scrapeamos haciendo click en Export data as csv y nos queda algo así
:)