Está en la página 1de 4

WEB SCRAPING

¿Qué es el web scraping?


El web scraping consiste en técnicas utilizadas mediante programas de software
para navegar automáticamente en una web y extraer información de esta. Estos
programas utilizan el proceso de usar bots (es un programa informático que
efectúa automáticamente tareas repetitivas a través de Internet, cuya realización
por parte de una persona sería imposible o muy tediosa.) para extraer contenido y
datos de un sitio web. De esta forma se extrae el código HTML y con él los datos
almacenados en la base de datos. Esto quiero decir que se puede duplicar o
copiar todo el contenido del sitio web en otro lugar. Si traducimos del inglés su
significado vendría a significar algo así como “escarbar una web”.
¿Cómo funciona?
El web scraping está muy relacionado con la indexación de la web, la cual indexa
la información de la web utilizando un robot y es una técnica universal adoptada
por la mayoría de los motores de búsqueda. Sin embargo, el web scraping se
enfoca más en la transformación de datos sin estructura en la web (como el
formato HTML) en datos estructurados que pueden ser almacenados y analizados
en una base de datos central, en una hoja de cálculo o en alguna otra fuente de
almacenamiento.
El scraping se puede hacer con diferentes técnicas. Los más frecuentes se
describen brevemente a continuación:

 Usando la manipulación http, el contenido de webs estáticas o dinámicas


puede ser copiado vía http-request.
 Con el método de Data Mining o minería de datos, los diferentes contenidos se
identifican por las plantillas y scripts en los que están incrustados. El contenido
se convierte utilizando un envoltorio y se pone a disposición de una web
diferente. El envoltorio actúa como una especie de interfaz entre los dos
sistemas.
 Las herramientas de scraping realizan múltiples tareas, tanto automatizadas
como controladas manualmente. Desde el contenido copiado a las estructuras
o funcionalidades copiadas.
 Los analizadores HTML, tal como se utilizan en los navegadores, recuperan
datos de otras webs y los convierten para otros fines.
 La copia manual del contenido a menudo se denomina scraping. Desde la
simple copia de textos hasta la copia de snippets completos del código fuente.
El scraping manual se utiliza a menudo cuando los programas de scraping se
bloquean, por ejemplo, con el archivo robots.txt.
 El escaneo de microformatos también forma parte del scraping. Con el
continuo avance del desarrollo de la web semántica, los microformatos son
componentes populares de una web.
Aplicaciones del web Scraping
 Marketing de contenidos
Podemos diseñar un robot que haga un scrapeo de datos concretos de una
web y los podamos utilizar para generar nuestro propio contenido.
 Ganar visibilidad en redes sociales
Podríamos utilizar los datos de un scrapeo para interactuar a través de un
robot con usuarios en redes sociales.
 Controlar la imagen y la visibilidad de nuestra marca en internet
A través de un scrapeo podemos automatizar la posición por la que varios
artículos de nuestra web se posicionan en Google o por ejemplo, controlar la
presencia del nombre de nuestra marca en determinados foros.
 Monitorización de la competencia
El precio no es la única variable competitiva en el entorno digital. Podemos
controlar, rastrear y generar alertas para saber cuándo los competidores
actualizan sus catálogos de producto o servicio, renuevan su sitio web, escriben
sobre un tema concreto, mencionan nuestros productos, entre otros.
 Caza de tendencias o cool hunting
La caza de tendencias. Consiste en, usar el scraping no solo para saber qué
se piensa de una marca, sino de qué marcas, productos, persona se va a estar
hablando durante los próximos meses, para aprovechar las
oportunidades de marketing.
 Optimización de precios
El scraping continuo de diferentes competidores permite generar históricos a lo
largo del tiempo con las condiciones del pricing, así como conocer en tiempo real
quién ofrece los mejores precios. Esto permite ofrecer un precio óptimo de venta,
tanto al cliente final como al canal de distribución.
 Optimización ecommerce
Las tiendas online son muy sensibles al scraping. Se pueden usar técnicas de
scraping que nos ayuden a elegir qué imagen mostrar como destacada, qué
categorización de productos funciona mejor, qué nicho está libre en un mercado
concreto, etc.
¿Cómo se usa web scraping en R?
Para el web scraping existen complementos o software especializado, aunque se
puede usar el lenguaje de programación R (aunque no es el único lenguaje) y
sus librerías. Este nos permite programar un algoritmo a medida, lo que nos da
mucha más flexibilidad: programar extracciones con cierta frecuencia, gestionar
errores o adaptarnos a los cambios de la web de origen con mayor flexibilidad.
Este es el mejor método para realizar web scraping complejos, con un gran
volumen de datos y frecuentes.
Ejemplo:
En ocasiones interesa descargar datos directamente de páginas de internet
recorriendo una, varias o, incluso, muchas de ellas. A eso, a falta de un
nombre de consenso en español (¿rascado?), se lo denomina web scraping.
Para descargar datos de páginas web usaremos el paquete rvest.
Library (rvest)
Con él podemos descargar, por ejemplo, las cotizaciones del IBEX 35 en tiempo real:
url.ibex <-
http://www.bolsamadrid.es/esp/aspx/Mercados/Precios.aspx?indice=ESI1000000
00
tmp <- read_html(url.ibex)
tmp <- html_nodes (tmp, "table")
La segunda línea descarga y pre procesa una página descargada de internet. El
objeto tmp contiene una representación interna de la página. Una página web,
en el fondo, no es otra cosa que un árbol del que penden nodos que son
párrafos, imágenes, enlaces, tablas, etc. Sobre este árbol se pueden realizar
distintos tipos de consultas, i.e., extraer distintos tipos de nodos.
La función html_nodes captura los nodos que tienen determinadas
características. En este ejemplo, como ocurre con mucha frecuencia, nos
interesan los identificados como tablas (tables). De hecho, las tablas son tan
interesantes que el paquete rvest proporciona una función auxiliar para convertir
los nodos de tipo table en tablas de R: html_table.
En nuestro ejemplo, la página contiene varias tablas. Como
consecuencia, tmp es una lista de nodos:
length (tmp)
## [1] 5
Sapply (tmp, class)
## [1] "xml_node" "xml_node" "xml_node" "xml_node" "xml_node"
La página, aunque no lo parezca, tiene varias tablas. Eso se debe a que en
HTML las tablas se utilizan en ocasiones, por abuso, no para almacenar datos
tabulares sino para dar formato a las páginas. Sin embargo, es fácil detectar
estas seudotablas por inspección. Para identificar la tabla de interés, la que
contiene las cotizaciones, podemos examinarlas todas ejecutando la
función html_table sobre tmp[[1]], tmp[[2]], etc. hasta dar con ella: es la quinta y
última.
Alternativamente, para evitar tener que examinar las tablas una a una se puede
hacer
Sapply (tmp, function(x) dim (html_table(x, fill = TRUE)))
## [,1] [,2] [,3] [,4] [,5]
## [1,] 46 1 1 1 35
## [2,] 351 1 7 9 9

Que nos indica que la quinta tabla tiene 35 filas, un indicio sólido de que es la
que va a contener las cotizaciones de las 35 empresas del IBEX.

Podemos entonces transformar este último nodo en una tabla de R:


Ibex <- html_table (tmp [[5]])

Conclusión
El web scraping es muy importante en el mundo empresarial ya que con el
podemos analizar un sin número de datos, los cuales nos permite abrir nuevos
nichos de mercado, planificar estrategias de marketing, optimizar precios, entre
muchas otras aplicaciones importantes para toda organización o proyecto. En si el
web scraping es muy esencial para obtener información útil de manera efectiva y
aprovecharla al máximo en la toma de decisiones empresariales.

Webgrafía

https://aukera.es/blog/web-scraping/
https://es.ryte.com/wiki/Scraping
https://es.wikipedia.org/wiki/Web_scraping
https://www.datanalytics.com/libro_r/web-scraping.html
https://papelesdeinteligencia.com/herramientas-de-web-scraping/
https://es.wikipedia.org/wiki/Bot

También podría gustarte