¿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.

Share facebook icon linkedin icon twitter icon email icon

Scraping de datos

Objetivos de aprendizaje

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

  • 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

¿Qué es el scraping de datos?

El scraping de datos, de un 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 normalmente en el scraping web, el proceso de utilizar una aplicación para extraer información valiosa de un sitio web.

Data Scraping

¿Por qué hacer scraping de datos de sitio web?

Lo habitual es que las empresas no quieran que se pueda descargar y reutilizar su contenido para fines no autorizados. Por ello, no exponen todos los datos a través de una API consumible u otro recurso de fácil acceso. Por otro lado, los bots de scraping están interesados en conseguir datos del sitio web independientemente de cualquier intento que se haga de limitar el acceso. Como resultado, se produce un juego del gato y el ratón entre los bots de scraping web y las diversas estrategias de protección de contenido, en el que cada uno intenta superar al otro.

El proceso de scraping web es bastante simple, aunque la implementación pueda ser compleja. El scraping web ocurre en 3 pasos:

  1. Primero, el fragmento de código utilizado para extraer la información, que se conoce como bot de scraper, envía una solicitud GET de HTTP 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.

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

  1. Scraping de contenido: el contenido se puede extraer del sitio web para replicar la ventaja única de un producto o servicio específicos que se basen en el contenido. Por ejemplo, un producto como Yelp se basa en reseñas; un competidor podría hacer scraping de todo el contenido de las reseñas de Yelp y reproducir el contenido en su propio sitio, como si su contenido fuera original.
  2. Scraping de precios: al hacer scraping de los datos de los precios, los competidores pueden añadir información sobre la competencia. Esto les ofrece una ventaja única.
  3. Scraping de contactos: muchos sitios web contienen direcciones de correo electrónico y números de teléfono en texto sin formato. Al hacer scraping de ubicaciones como un directorio de empleados en línea, un scraper puede añadir detalles de contacto para listas de correo electrónico para envíos masivos, llamadas automáticas o intentos de ingeniería social maliciosos. Este es uno de los métodos más importantes que utilizan tanto los spammers como los scammer para encontrar nuevos objetivos.

¿Cómo se mitiga el scraping web?

Por lo general, todo el contenido que un visitante del sitio web pueda ver debe transferirse a la máquina del visitante, y un bot puede hacer scraping de cualquier información a la que pueda acceder el visitante.

Se pueden hacer esfuerzos para limitar la cantidad de scraping web. A continuación, se presentan 3 métodos para limitar la exposición a los esfuerzos de scraping de datos:

  1. Solicitudes de Rate Limiting: la velocidad de interacción de un ser humano con un sitio web al hacer clic en diversas páginas del sitio es bastante predecible; un ser humano nunca navegará a 100 páginas por segundo, por ejemplo. Por otro lado, los ordenadores pueden hacer órdenes de solicitudes a una magnitud más rápida que un humano, y los scrapers de datos con poca experiencia pueden usar técnicas de scraping sin control para intentar hacer el scraping de todo un sitio web de forma muy rápida. Por rate limiting, el número máximo de solicitudes que es capaz de realizar una determinada dirección IP en una ventana de tiempo dada, los sitios web son capaces de protegerse de las solicitudes de explotación y limitar la cantidad de scraping de datos que se pueden dar en una cierta ventana de tiempo.
  2. Modificar el marcado HTML a intervalos regulares: los bots de scraping de datos dependen de un formato consistente para poder atravesar de forma efectiva el contenido del sitio web, y analizar y guardar datos útiles. Un método para interrumpir este flujo de trabajo es cambiar con regularidad los elementos del marcado HTML para que el scraping consistente se vuelva más complicado. Al anidar elementos de HTML o al cambiar otros aspectos del marcado, los simples esfuerzos de scraping de datos se obstaculizarán o se frustrarán. Para algunos sitios web, cada vez que se reproduce una página web, se hacen aleatorias y se implementan modificaciones de protección de contenido. Otros sitios web actualizarán su código de marcado ocasionalmente para prevenir los esfuerzos de scraping de datos a largo plazo.
  3. Usar CAPTCHA para solicitantes de gran volumen: además de usar una solución de rate limiting, otro paso útil para frenar los scrapers de contenido es establecer el requisito de que un visitante al sitio web responda a un desafío que un ordenador tenga problemas para resolver. Aunque un ser humano pueda responder razonablemente bien al desafío, un navegador sin interfaz gráfica* involucrado en el scraping de datos probablemente no pueda hacer lo mismo, y ciertamente no lo hará de manera consistente a lo largo de las muchas instancias del desafío. No obstante, los desafíos constantes de CAPTCHA pueden afectar de forma negativa la experiencia del usuario.

Otro método menos habitual de mitigación requiere la incrustación de contenido dentro de objetos de medios como imágenes. Ya que el contenido no existe en una cadena de caracteres, copiar el contenido es mucho más complejo y requiere reconocimiento óptico de caracteres (OCR) para extraer los datos de un archivo de imagen. Pero esto también puede ser un obstáculo para los usuarios web que necesiten copiar contenido, una dirección o un número de teléfono, de un sitio web en lugar de memorizarlo o volver a escribirlo.

*Un navegador sin interfaz gráfica es un tipo de navegador web, parecido a Chrome o Firefox, pero que no cuenta con una interfaz de usuario visual de forma predeterminada, lo que le permite moverse de manera mucho más rápida que un navegador web típico. Al ejecutarse básicamente al nivel de una línea de comando, un navegador sin interfaz gráfica puede evitar mostrar aplicaciones web completas. Los scrapers de datos escriben bots que usan navegadores sin interfaz gráfica para solicitar datos más de forma más rápida, ya que no hay un humano visualizando cada página a la que se le esté haciendo el scrape.

¿Cómo se puede parar completamente el scraping?

La única manera de parar completamente el scraping web es directamente dejar de poner contenido en un sitio web. Sin embargo, el uso de una solución avanzada de gestión de bots puede ayudar a los sitios web a eliminar casi por completo el acceso a los bots de scraper.

¿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.

A continuación, las 3 prácticas en las que se involucra un bot de scraper que se diferencian del comportamiento de un robot rastreador web:

  1. Los bots de Scraper pretenderán ser navegadores web, mientras que un robot rastreador indicará su cometido y no intentará engañar a un sitio web haciéndole creer que es algo que no es.
  2. A veces los raspadores tomarán medidas avanzadas como rellenar formularios o exhibir en caso contrario comportamientos para alcanzar cierta parte del sitio web. Los rastreadores no harán eso.
  3. Habitualmente, los scrapers no tienen en cuenta el archivo robots.txt, el cual es un archivo de texto que contiene información específicamente diseñada para indicar a los rastreadores web qué datos analizar y qué áreas del sitio tienen que evitar. Ya que un scraper está diseñado para extraer contenido específico, puede que extraiga contenido que esté marcado de forma explícita para ser ignorado.

Cloudflare Bot Management usa el aprendizaje automático y el análisis de comportamiento para identificar bots maliciosos, como los scrapers que protegen contenido único y previenen que los bots abusen de una propiedad web.