Articulo de referencia

Extracción de datos

El raspado de datos es una técnica mediante la cual un programa informático extrae datos de la salida legible por humanos procedente de otro programa. Descripción Normalmente, l...

El raspado de datos es una técnica mediante la cual un programa informático extrae datos de la salida legible por humanos procedente de otro programa.

Descripción

Normalmente, la transferencia de datos entre programas se realiza mediante estructuras de datos aptas para el procesamiento automatizado por ordenadores , no por personas. Estos formatos y protocolos de intercambio suelen estar rígidamente estructurados, bien documentados, son fáciles de analizar y minimizan la ambigüedad. Con frecuencia, estas transmisiones son completamente ilegibles para los humanos.

Así pues, el elemento clave que distingue la extracción de datos del análisis sintáctico convencional es que los datos que se consumen están destinados a ser mostrados a un usuario final , en lugar de ser utilizados como entrada para otro programa. Por consiguiente, no suelen estar documentados ni estructurados para facilitar su análisis. La extracción de datos a menudo implica ignorar datos binarios (generalmente imágenes o datos multimedia), el formato de visualización , las etiquetas redundantes, los comentarios superfluos y otra información irrelevante o que dificulta el procesamiento automatizado.

La extracción de datos se realiza con mayor frecuencia para interactuar con un sistema heredado que no cuenta con ningún otro mecanismo compatible con el hardware actual , o para interactuar con un sistema de terceros que no ofrece una API más conveniente . En este último caso, el operador del sistema de terceros suele considerar la extracción de datos de pantalla como una práctica indeseable, debido a razones como el aumento de la carga del sistema , la pérdida de ingresos publicitarios o la pérdida de control sobre el contenido informativo.

La extracción de datos se considera generalmente una técnica improvisada y poco elegante, que a menudo se utiliza solo como último recurso cuando no hay otro mecanismo disponible para el intercambio de datos. Además de la mayor sobrecarga de programación y procesamiento, las visualizaciones destinadas al consumo humano suelen cambiar de estructura con frecuencia. Si bien los humanos pueden gestionar esto fácilmente, un programa informático fallará. Dependiendo de la calidad y el alcance de la lógica de manejo de errores presente en el ordenador , este fallo puede provocar mensajes de error, resultados corruptos o incluso el bloqueo del programa .

Sin embargo, configurar una canalización de extracción de datos hoy en día es sencillo y requiere un esfuerzo mínimo de programación para satisfacer necesidades prácticas (especialmente en la integración de datos biomédicos). [ 1 ]

Variantes técnicas

Extracción de datos de pantalla

Un fragmento de pantalla y una interfaz de extracción de datos de pantalla (recuadro azul con flecha roja) para personalizar el proceso de captura de datos.

Aunque el uso de terminales físicas "tontas " IBM 3270 está disminuyendo lentamente, a medida que más y más aplicaciones de mainframe adquieren interfaces web , algunas aplicaciones web simplemente continúan utilizando la técnica de extracción de pantalla para capturar pantallas antiguas y transferir los datos a interfaces modernas. [ 2 ]

El web scraping se asocia normalmente con la recopilación programática de datos visuales de una fuente, en lugar del análisis de datos como en el web scraping. Originalmente, el término se refería a la práctica de leer datos de texto de la pantalla de un terminal de ordenador . Esto se hacía generalmente leyendo la memoria del terminal a través de su puerto auxiliar o conectando el puerto de salida de un sistema informático a un puerto de entrada de otro. El término web scraping también se usa comúnmente para referirse al intercambio bidireccional de datos. Esto puede incluir casos sencillos en los que el programa controlador navega por la interfaz de usuario, o escenarios más complejos en los que el programa controlador introduce datos en una interfaz destinada a ser utilizada por un usuario.

Como ejemplo concreto de un extractor de pantalla clásico, consideremos un sistema heredado hipotético de la década de 1960, los albores del procesamiento de datos informatizado. Las interfaces de usuario de ordenador de aquella época solían ser simples terminales tontas basadas en texto, que no eran mucho más que teletipos virtuales (estos sistemas todavía se utilizan hoy en día).(por diversas razones). El deseo de conectar un sistema de este tipo con sistemas más modernos es común. Una solución robusta a menudo requerirá elementos que ya no están disponibles, como el código fuente , la documentación del sistema , las API o programadores con experiencia en un sistema informático de 50 años. En tales casos, la única solución factible puede ser escribir un extractor de pantalla que "simule" ser un usuario en una terminal. El extractor de pantalla podría conectarse al sistema heredado a través de Telnet , emular las pulsaciones de teclas necesarias para navegar por la antigua interfaz de usuario, procesar la salida de pantalla resultante, extraer los datos deseados y pasarlos al sistema moderno. Una implementación sofisticada y robusta de este tipo, construida sobre una plataforma que proporciona la gobernanza y el control requeridos por una gran empresa (por ejemplo, control de cambios, seguridad, gestión de usuarios, protección de datos, auditoría operativa, equilibrio de carga y gestión de colas, etc.), podría decirse que es un ejemplo de software de automatización robótica de procesos , llamado RPA o RPAAI para RPA 2.0 autoguiado basado en inteligencia artificial .

En la década de 1980, los proveedores de datos financieros como Reuters , Telerate y Quotron mostraban los datos en formato 24×80, destinado a la lectura humana. Los usuarios de estos datos, en particular los bancos de inversión , desarrollaron aplicaciones para capturar y convertir estos datos de caracteres en datos numéricos para su inclusión en cálculos para la toma de decisiones de inversión sin necesidad de volver a introducirlos . El término común para esta práctica, especialmente en el Reino Unido , era « destruir páginas », ya que se podía imaginar que los resultados habían pasado por una trituradora de papel . Internamente, Reuters utilizaba el término «logicizado» para este proceso de conversión, ejecutando un sofisticado sistema informático en VAX/VMS llamado Logicizer. [ 3 ]

Las técnicas más modernas de extracción de datos de pantalla incluyen capturar los datos de mapa de bits de la pantalla y procesarlos mediante un motor OCR , o, para algunos sistemas de pruebas automatizadas especializados, comparar los datos de mapa de bits de la pantalla con los resultados esperados. [ 4 ] En el caso de las aplicaciones GUI , esto se puede combinar con la consulta de los controles gráficos mediante la obtención programática de referencias a sus objetos de programación subyacentes . Una secuencia de pantallas se captura automáticamente y se convierte en una base de datos.

Otra adaptación moderna de estas técnicas consiste en utilizar, en lugar de una secuencia de pantallas como entrada, un conjunto de imágenes o archivos PDF, por lo que existen algunas coincidencias con las técnicas genéricas de "extracción de documentos" y minería de informes .

Hay muchas herramientas que se pueden utilizar para extraer datos de la pantalla. [ 5 ]

Extracción de datos web

Las páginas web se construyen utilizando lenguajes de marcado basados ​​en texto ( HTML y XHTML ) y, con frecuencia, contienen gran cantidad de datos útiles en formato de texto. Sin embargo, la mayoría de las páginas web están diseñadas para usuarios finales humanos y no para facilitar su uso automatizado. Debido a esto, se crearon herramientas para extraer contenido web. Un web scraper es una API o herramienta para extraer datos de un sitio web. [ 6 ] Empresas como Amazon AWS y Google proporcionan herramientas, servicios y datos públicos de web scraping disponibles gratuitamente para los usuarios finales. Las formas más recientes de web scraping implican la escucha de flujos de datos de servidores web. Por ejemplo, JSON se utiliza comúnmente como mecanismo de almacenamiento de transporte entre el cliente y el servidor web. [ 7 ] Un web scraper utiliza la URL de un sitio web para extraer datos y los almacena para su posterior análisis. Este método de web scraping permite la extracción de datos de manera eficiente y precisa. [ 8 ]

Recientemente, las empresas han desarrollado sistemas de web scraping que se basan en el uso de técnicas de análisis del DOM, visión artificial y procesamiento del lenguaje natural para simular el procesamiento humano que ocurre al ver una página web y extraer automáticamente información útil. [ 9 ] [ 10 ]

Los sitios web grandes suelen utilizar algoritmos de defensa para proteger sus datos de los programas de extracción de datos y limitar el número de solicitudes que una IP o red IP puede enviar. Esto ha provocado una batalla constante entre los desarrolladores de sitios web y los desarrolladores de programas de extracción de datos. [ 11 ]

Minería de informes

La minería de informes consiste en la extracción de datos de informes informáticos legibles por humanos. La extracción de datos convencional requiere una conexión a un sistema fuente en funcionamiento, estándares de conectividad adecuados o una API , y generalmente consultas complejas. Al utilizar las opciones de informes estándar del sistema fuente y dirigir la salida a un archivo de cola en lugar de a una impresora , se pueden generar informes estáticos adecuados para el análisis fuera de línea mediante la minería de informes. [ 12 ] Este enfoque puede evitar el uso intensivo de CPU durante el horario laboral, puede minimizar los costos de licencia de usuario final para los clientes de ERP y puede ofrecer una creación de prototipos y desarrollo de informes personalizados muy rápidos. Mientras que el raspado de datos y el raspado web implican la interacción con la salida dinámica, la minería de informes implica la extracción de datos de archivos en un formato legible por humanos, como HTML , PDF o texto. Estos se pueden generar fácilmente desde casi cualquier sistema interceptando la alimentación de datos a una impresora. Este enfoque puede proporcionar una ruta rápida y sencilla para obtener datos sin necesidad de programar una API para el sistema fuente.

Consideraciones legales y éticas

La legalidad y la ética del rastreo de datos son temas que suelen generar debate. Si bien el rastreo de datos de acceso público generalmente es legal, hacerlo de manera que infrinja los términos de servicio de un sitio web, vulnere las medidas de seguridad o invada la privacidad del usuario puede acarrear acciones legales. Además, algunos sitios web prohíben específicamente el rastreo de datos mediante sus robots.

Véase también

Referencias

  1. Glez-Peña, Daniel (30 de abril de 2013). "Tecnologías de web scraping en un mundo de API" . Briefings in Bioinformatics . 15 (5): 788– 797. doi : 10.1093/bib/bbt026 . hdl : 1822/32460 . PMID 23632294 . 
  2. "En la década de 1990... 2002... 2016... sigue siendo, según Chase Bank , un problema importante. Ron Lieber (7 de mayo de 2016). "Jamie Dimon quiere protegerte de las empresas emergentes innovadoras" . The New York Times .
  3. Los colaboradores se muestran preocupados por el plan de Reuters de cambiar de Monitor Network a IDN , FX Week , 2 de noviembre de 1990
  4. Yeh, Tom (2009). "Sikuli: Uso de capturas de pantalla de GUI para búsqueda y automatización" (PDF) . UIST . Archivado del original (PDF) el 14 de febrero de 2010. Recuperado el 16 de febrero de 2015 .
  5. "¿Qué es el web scraping?" 17 de junio de 2019.
  6. ^ Thapelo, Tsaone Swaabow; Namoshe, Molaletsa; Matsebe, Oduetse; Motshegwa, Tshiamo; Bopape, Mary-Jane Morongwa (28 de julio de 2021). "SASSCAL WebSAPI: una interfaz de programación de aplicaciones de raspado web para admitir el acceso a los datos meteorológicos de SASSCAL" . Revista de ciencia de datos . 20 24. doi : 10.5334/dsj-2021-024 . ISSN 1683-1470 . S2CID 237719804 .  
  7. "Trabajar con JSON" . MDN Web Docs . Mozilla . Consultado el 16 de enero de 2026 .
  8. Singrodia, Vidhi; Mitra, Anirban; Paul, Subrata (23 de enero de 2019). «Una revisión sobre el web scraping y sus aplicaciones». Conferencia Internacional de Comunicación e Informática de 2019 (ICCCI) . IEEE. págs. 1-6 . doi : 10.1109/ICCCI.2019.8821809 . ISBN  978-1-5386-8260-9.
  9. Metz, Rachel (1 de junio de 2012). "Una empresa emergente espera ayudar a las computadoras a comprender las páginas web" . MIT Technology Review . Consultado el 1 de diciembre de 2014 .
  10. VanHemert, Kyle (4 de marzo de 2014). "Esta sencilla herramienta de extracción de datos podría cambiar la forma en que se crean las aplicaciones" . WIRED . Archivado del original el 11 de mayo de 2015. Consultado el 8 de mayo de 2015 .
  11. ""Tráfico inusual en su red informática"" . Ayuda de búsqueda de Google . Consultado el 4 de abril de 2017 .
  12. Scott Steinacher, "Data Pump transforma los datos del host" , InfoWorld , 30 de agosto de 1999, pág. 55

Lecturas adicionales

  • Hemenway, Kevin y Calishain, Tara. Spidering Hacks . Cambridge, Massachusetts: O'Reilly, 2003. ISBN 0-596-00577-6.