X

Scraping: cómo funciona y por qué es tan usado

El scraping es una técnica utilizada para recoger información de sitios web de manera automática. En lugar de realizar una copia manual, las herramientas de scraping extraen la información de un sitio web sin intervención manual. Las aplicaciones del scraping pueden ser tanto buenas como malas y hoy veremos a fondo en qué consiste este proceso.

¿Qué es el scraping?

El scraping no es algo nuevo ni que esté de moda; de hecho, ha existido desde que existe la propia Internet. Llamada con frecuencia web scraping, esta técnica consiste en extraer información de sitios web de manera automatizada.

En lugar de copiar la información manualmente, se utiliza un programa o herramienta que hace ese trabajo; incluso a veces se puede extraer solo cierta información que se indique, por ejemplo, precios de productos, estadísticas, datos puntuales o cualquier cosa que se muestre en un sitio web.

La mayoría de los sitios web presentan su información como HTML, un lenguaje usado en la estructura de páginas web. Los programas de scraping, que suelen llamarse scrapers, leen el HTML e identifican los elementos que se les indiquen. La información que se extrae es almacenada en el formato deseado, por ejemplo, en una hoja de cálculo, en un archivo JSON, etc.

El scraping por lo general se utiliza cuando se requiere copiar rápidamente una gran cantidad de información de un sitio web o de múltiples sitios web. Por ejemplo, una compañía puede hacer scraping del sitio de un competidor para obtener sus precios, los investigadores pueden reunir datos de fuentes públicas y los analistas pueden conseguir información que necesiten.

Si bien el concepto de scraping es simple, lo cierto es que el mecanismo para llevarlo a cabo puede ir desde un simple script hasta sistemas complejos capaces de analizar miles de páginas web automáticamente.

Su funcionamiento

En su nivel más básico, el scraping tiene una secuencia de pasos muy simple: solicitar una página web, tomar su contenido y extraer la información relevante. El programa suele comenzar enviando la solicitud a un servidor para ver un sitio web, similar a cuando un usuario ingresa a un sitio usando un navegador.

A continuación, el servidor responde enviando el código HTML. El scraper recibe este código y comienza a analizarlo, usando selectores, patrones y reglas para identificar la información que está buscando. Por ejemplo, el scraper puede buscar precios en bases a etiquetas HTML que lo indiquen.

Una vez encontrada la información en cuestión, el scraper la copia y la almacena de forma estructurada, por ejemplo, en un archivo CSV o en un JSON, o incluso puede insertarla en una base de datos.

Los sistemas de scraping más avanzados pueden seguir enlaces, navegar e incluso simular el comportamiento de un navegador si un sitio requiere un uso intensivo de JavaScript. En casos así se pueden usar navegadores automatizados o navegadores headless para obtener el código de la página.

La legalidad del scraping

Como decíamos al comienzo del artículo, el scraping puede ser usado para cosas buenas y para cosas malas. De esto último surge la idea de que el scraping no es una práctica legal, aunque el hecho de que sea legal o no depende de varios factores.

Su legalidad radica principalmente en la jurisdicción donde ocurre el proceso, en la forma en que los datos son recolectados y en cómo son usados esos datos posteriormente.

En general, el scraping de información pública disponible en sitios web públicos no se considera ilegal. Sin embargo, esto a veces puede variar según la jurisdicción, el tipo de información recogida y si la práctica de scraping viola los términos de uso del sitio web en cuestión.

Muchos sitios web incluyen en sus términos de uso una regla que restringe la recolección automática de datos. Si bien violar esta regla no siempre tiene repercusiones legales, sí puede derivar en limitaciones como el bloqueo de la IP del usuario o la suspensión de su cuenta.

La naturaleza de los datos recogidos es también muy importante. Hacer scraping de información personal, de material protegido por derechos de autor o de información disponible detrás de sistemas de login suele estar prohibido y puede tener consecuencias legales.

A lo largo de la historia, distintas cortes en distintos países han llegado a distintos veredictos en lo que al scraping se refiere, así que no existe una sola respuesta cuando alguien pregunta si el scraping es legal. Como decíamos, es algo que depende del contexto, de la información extraída y del uso que se le dé.

Las compañías que realizan scraping de forma legítima, lo cual puede involucrar motores de búsqueda, empresas de analítica, de inteligencia y de comparativas, suelen trabajar dentro de marcos legales, asegurándose de no romper las políticas de los sitios web donde realizan sus actividades.

Desafíos y limitaciones

Si bien el scraping es una técnica muy poderosa a la hora de recoger datos de forma masiva, también es cierto que presenta ciertos desafíos y limitaciones que hacen que su adopción a gran escala no sea sencilla.

  • En primer lugar, los sitios web no están diseñados para ser usados por scrapers, sino por personas, y su estructura puede cambiar en cualquier momento. Incluso pequeños cambios en el HTML pueden no tener un impacto visual para el usuario, pero pueden hacer que un scraper quede obsoleto si se deja de mostrar el patrón buscado.
  • Otro problema común son los bloqueos y límites de solicitudes. Muchos sitios que monitorizan su tráfico pueden detectar automatismos y peticiones en masa que vienen de una misma IP, procediendo a bloquear la petición o implementando alguna medida de protección como un captcha.
  • Algunas tecnologías también pueden hacer que el scraping se vuelva más complejo. Por ejemplo, el uso de frameworks JavaScript para cargar contenido dinámicamente puede hacer que determinada información no aparezca en la respuesta HTML inicial.
  • Sumado a todo lo anterior, está el hecho de que mantener un sistema de scraping requiere de muchos ajustes casi de forma continua, dado que los sitios web con frecuencia cambian, son actualizados, implementan nuevas medidas de seguridad, modifican su estructura, etc.

Prácticas para un scraping responsable

Hacer scraping de manera responsable implica recoger información que respete las limitaciones técnicas de un sitio web y también sus políticas. Un scraping mal implementado, incluso si es bienintencionado, puede provocar sobrecargas en servidores, violar políticas o recoger información de una manera tal que surjan cuestionamientos legales y/o éticos.

  • Una práctica común dentro del scraping responsable es respetar el archivo robots.txt, el cual indica las secciones donde se permite el acceso de herramientas automatizadas. Si bien no suele tener implicaciones legales, respetar este archivo es lo mínimo que se considera aceptable si se lleva a cabo un proceso de scraping.
  • El control de la frecuencia de las requests también es importante. Los scrapers tienen que evitar enviar un número alto de solicitudes en un período de tiempo corto.
  • También se recomienda la correcta identificación del tráfico automatizado, de forma que los responsables de un sitio web puedan comprender mejor el propósito del tráfico web que están recibiendo.
  • Finalmente, el scraping solo debe recoger datos que sean realmente necesarios, con el fin de evitar peticiones innecesarias y limitar la recolección de información que no es útil.

Cuándo hacer scraping y cuándo no

El scraping es más útil cuando la información está disponible de forma pública y no se provee de manera estructurada o en un formato adecuado. En una situación como esta, el scraping puede convertir un montón de datos desperdigados por una web en información estructurada, la cual puede ser analizada fácilmente o integrada en otros sistemas.

Por ejemplo, el scraping puede tener sentido cuando se recogen precios de muchos vendedores distintos, se monitorizan cambios en muchas páginas o se recoge información pública para investigaciones y análisis. En casos como estos, el scraping se encarga de automatizar un proceso que llevaría mucho tiempo si se hiciera manualmente.

Sin embargo, el scraping no siempre es la mejor forma de proceder. Muchos sitios web proveen APIs que permiten acceder a su información de forma estructurada y acceder a la información de esta manera suele ser más estable y eficiente que hacer scraping.

En ocasiones, el scraping además puede volverse complejo, como ya decíamos hace algunos párrafos. Los sitios web cambian con el tiempo o pueden implementar limitaciones, lo cual puede afectar a las herramientas automáticas y provocar bloqueos o limitar las peticiones.

Herramientas populares

Existe una gran cantidad de herramientas que se usan para hacer scraping, desde simples librerías hasta frameworks complejos.

Una de las más populares es Scrapy, un framework de código abierto hecho en Python que está diseñado para recoger datos de sitios web masivamente. Scrapy permite definir reglas, extraer información de manera estructurada y almacenarla.

Para extraer información de HTML y elementos específicos de sitios existen librerías como Beautiful Soup, también hecha en Python.

Y en el caso de sitios web que usen mucho JavaScript, lo normal es recurrir a herramientas más avanzadas; por ejemplo, Playwright y Selenium permiten generar interacciones como si fuera un humano quien está navegando por un sitio web.

Conclusión

El scraping es una técnica ampliamente utilizada para transformar la información pública de la web en datos estructurados que pueden analizarse o reutilizarse. Sin embargo, hay que considerar aspectos técnicos, legales y éticos, además de implementar prácticas responsables para evitar problemas.

Artículos relacionados