¿Qué es el scraping de datos?

Los atacantes pueden usar herramientas de scraping web para acceder a los datos mucho más rápido de lo previsto. Esto puede hacer que se utilicen los datos para fines no autorizados.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Definir el scraping de datos
  • Explicar el objetivo tras el scraping de datos
  • Entender los métodos de mitigar el scraping de datos
  • Diferenciar entre el scraping de datos y el rastreo de datos

Contenido relacionado


¿Quieres saber más?

Suscríbase a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.

Revisa la política de privacidad de Cloudflare para saber más sobre cómo Cloudflare gestiona tus datos personales.

Copiar enlace del artículo

Defiéndete contra los ataques de bots como el relleno de credenciales y la apropiación de contenido con Cloudflare

¿Qué es el scraping de datos?

El scraping de datos, de modo general, se refiere a una técnica en la cual un programa informático extrae datos del resultado generado por otro programa. El scraping de datos se manifiesta comúnmente en el scraping web, el proceso de utilizar una aplicación para extraer información valiosa de un sitio web.

Scraping de datos

¿Cuáles son los diferentes tipos de web scraping? ¿Por qué hacer scraping de datos de sitio web?

Los bots de scraper se pueden diseñar para múltiples propósitos, como:

  1. Extracción de contenidos: los contenidos de un sitio web se extraen para imitar las ventajas exclusivas de un producto o servicio específico basado en los contenidos. Tomemos como ejemplo un sitio de reseñas de restaurantes: un competidor podría extraer todas las reseñas y reproducir los contenidos en su propio sitio web, simulando que los contenidos son originales (y cosechando los beneficios).
  2. Extracción de precios: al extraer los datos de los precios, los competidores pueden añadir información sobre la competencia. Esto puede permitirles formular una ventaja única, normalmente rebajar precios respecto a sus competidores, arrebatando así su negocio.
  3. Extracción de contactos: muchos sitios web contienen direcciones de correo electrónico y números de teléfono en texto no cifrado. Al extraer páginas como los directorios de empleados en línea, un scraper puede reunir datos de contacto para utilizarlos en listas de correo electrónico masivo, llamadas automáticas o intentos maliciosos de ingeniería social. Este es uno de los principales métodos que utilizan tanto los spammers como los estafadores para encontrar nuevos objetivos.

¿Cuál es la diferencia entre el scraping de datos y el rastreo de datos?

El rastreo hace referencia al proceso que realizan los grandes motores de búsqueda como Google cuando envían sus rastreadores robot, como Googlebot, a la red para indexar el contenido de Internet. Por otro lado, Scraping suele estar estructurado específicamente para extraer datos de un sitio web específico.

Aquí hay 3 diferencias en la práctica de comportamiento entre los bots de scraper y los bots de rastreador web:

  Honestidad/Transparencia Maniobras avanzadas Respetar el archivo robots.txt
Bot scraper Se hará pasar por navegadores web para eludir cualquier intento de bloquear los scrapers. Puede realizar acciones avanzadas, como rellenar formularios para acceder a información privada. Normalmente no tiene en cuenta el archivo robots.txt, lo que significa que puede extraer contenidos explícitamente en contra de los deseos del propietario del sitio web.
Bot rastreador Indicará su propósito: no intentará engañar a un sitio web para que piense que el rastreador es algo que no es. No intentará acceder a partes cerradas de un sitio web. Respeta robots.txt, lo que significa que cumple con los deseos del propietario del sitio web en cuanto a qué datos analizar frente a qué áreas del sitio web evitar.

¿Cómo se extraen los sitios web?

El proceso de extracción o scraping de sitios web es bastante simple, aunque su implementación pueda ser compleja. Podemos resumir el proceso en 3 pasos:

  1. Primero, el fragmento de código utilizado para extraer la información (el bot de extracción) envía una solicitud HTTP GET a un sitio web específico.
  2. Cuando el sitio web responde, el scraper analiza el documento HTML para buscar un patrón de datos específico.
  3. Una vez se hayan extraído los datos, se convierten a cualquier formato específico proyectado por el autor del bot de scraper.

Normalmente, las empresas no quieren que sus contenidos específicos se puedan descargar y reutilizar para fines no autorizados, por lo que podrían intentar no exponer todos los datos a través de una API consumible u otro recurso de fácil acceso. Por otro lado, los bots de extracción tratan de conseguir datos del sitio web independientemente de los intentos que se hagan de limitar el acceso. Como consecuencia, se produce un juego del gato y el ratón entre los bots de extracción web y las diversas estrategias de protección de contenidos, en el que cada uno intenta superar al otro.

¿Cómo se mitiga el scraping web?

Las estrategias de scraping inteligentes requieren estrategias de mitigación inteligentes. Los métodos para limitar la exposición a los esfuerzos de extracción de datos incluyen los siguientes:

  1. Solicitudes de limitación de velocidad: la velocidad de interacción de un visitante humano que va haciendo clic en diversas páginas de un sitio web es bastante predecible; un ser humano nunca navegará a 100 páginas por segundo, por ejemplo. En cambio, los ordenadores pueden realizar solicitudes que están a varias magnitudes de velocidad por encima de un humano. Los scrapers de datos inexpertos pueden usar técnicas de extracción sin control de velocidad para intentar extraer todo un sitio web de forma muy rápida. Con la limitación de velocidad del número máximo de solicitudes que puede realizar una dirección IP determinada en un lapso de tiempo dado, los sitios web pueden protegerse de las solicitudes que buscan aprovecharse de las vulnerabilidades y limitar la cantidad de extracción de datos que puede suceder en ese lapso.
  2. Modificar el formato HTML regularmente: los bots de extracción de datos necesitan un formato consistente para poder recorrer eficazmente el contenido del sitio web y analizar los datos. Un método para interrumpir este flujo de trabajo es cambiar con regularidad los elementos del formato HTML. Al anidar elementos de HTML o al cambiar otros aspectos del formato, los intentos de extracción de datos simples se obstaculizarán o se frustrarán. Por ejemplo, algunos sitios web aleatorizarán alguna forma de modificación de protección de contenidos cada vez que se represente una página web; otros pueden actualizar su interfaz cada pocas semanas para evitar esfuerzos de apropiación de datos a largo plazo.
  3. Usar desafíos para solicitantes de gran volumen: otro paso útil para frenar a los scrapers de contenidos es exigir a los visitantes del sitio web que respondan a una pregunta que sea difícil de resolver para un ordenador. Si bien un humano puede responder razonablemente al desafío, es muy probable que un navegador sin interfaz gráfica* no pueda hacerlo, ciertamente no en muchas instancias del desafío.
  4. Otro método de mitigación menos común consiste en incrustar contenidos dentro de objetos multimedia como imágenes. Debido a que los contenidos no existen en una cadena de caracteres, copiar los contenidos es mucho más complejo, ya que requiere el reconocimiento óptico de caracteres (OCR) para extraer los datos de un archivo de imagen.

*Un navegador sin interfaz gráfica es un tipo de navegador web, muy parecido a Chrome o Firefox, pero que no tiene una interfaz de usuario visual por defecto, lo que le permite moverse mucho más rápido que un navegador web típico. Al ejecutarse esencialmente a nivel de línea de comandos, un navegador sin interfaz gráfica es capaz de evitar la representación de aplicaciones web completas. Los scrapers de datos escriben bots que utilizan navegadores sin interfaz gráfica para solicitar datos más rápido, ya que no hay personas que vean cada página que se está extrayendo.

¿Cómo se puede parar completamente el scraping?

La única forma de garantizar el fin del scraping de sitios web es dejar de poner contenidos en un sitio web por completo. Sin embargo, el uso de una solución avanzada de gestión de bots puede ayudar a los sitios web a eliminar el acceso de los bots de extracción.

Protégete contra los ataques de scraping con Cloudflare

Cloudflare Bot Management usa el aprendizaje automático y el análisis de comportamiento para identificar la actividad de scraping maliciosa, protegiendo los contenidos únicos y previniendo que los bots abusen de una propiedad web. De forma similar, el modo Super Bot Fight está diseñado para ayudar a las organizaciones más pequeñas a defenderse de los scrapers y otras actividades de bots maliciosos, al mismo tiempo que les proporciona más visibilidad de su tráfico de bots.