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

Scraping de datos

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

Normalmente, las empresas no quieran que su contenido específico se pueda descargar y reutilizar 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 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 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 llamamos 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.

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

  1. Extracción de contenido: el contenido se puede extraer del sitio web para imitar las ventajas exclusivas de un producto o servicio específico basado en el contenido. Por ejemplo, un producto como Yelp se basa en reseñas; un competidor podría extraer todo el contenido de las reseñas de Yelp y reproducirlo en su propio sitio, como si fuera original.
  2. Extracción de precios: al extraer los datos de los precios, los competidores pueden añadir información sobre la competencia. Esto les permite formular una ventaja competitiva.
  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 ubicaciones como un directorio de empleados en línea, un scraper puede reunir datos de contacto para listas de correo electrónico masivo, llamadas automáticas o intentos maliciosos de ingeniería social. Es uno de los principales métodos que utilizan tanto los spammers como los estafadores 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 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. Por su parte, los ordenadores pueden realizar solicitudes a una magnitud más rápida que un humano. Los scrapers de datos inexpertos pueden usar técnicas de extracción sin control para intentar extraer todo un sitio web de forma muy rápida. Al limitar la 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 un lapso concreto.
  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, analizar datos útiles y guardarlos. Un método para interrumpir este flujo de trabajo es cambiar con regularidad los elementos del formato HTML para que la extracción consistente sea más complicada. 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. En algunos sitios web, cada vez que se reproduce una página web, algunas modificaciones de protección de contenido se distribuyen aleatoriamente y se implementan. Otros sitios web actualizan el formato del código ocasionalmente para prevenir a largo plazo los intentos de extracción de datos.
  3. Usar CAPTCHA para solicitantes de gran volumen: además de usar una solución de limitación de velocidad, otro paso útil para frenar a los scrapers de contenido es el requisito de que los visitantes del sitio web respondan a una pregunta que sea difícil de resolver para un ordenador. Mientras que un ser humano puede responder la pregunta fácilmente, un navegador sin cabeza* dedicado a la extracción de datos probablemente no pueda hacerlo, y ciertamente no lo hará de manera consistente en un desafío con muchas preguntas. No obstante, las preguntas 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, protegiendo el contenido exclusivo y previniendo que los bots abusen de una propiedad web.