stringtranslate.com

Raspado de datos

El raspado de datos es una técnica en la que un programa de computadora extrae datos de resultados legibles por humanos provenientes de otro programa.

Descripción

Normalmente, la transferencia de datos entre programas se logra utilizando estructuras de datos adecuadas para el procesamiento automatizado por computadoras , no por personas. Estos formatos y protocolos de intercambio suelen estar estructurados de forma rígida, bien documentados, fáciles de analizar y minimizar la ambigüedad. Muy a menudo, estas transmisiones no son legibles por humanos en absoluto.

Por lo tanto, el elemento clave que distingue el raspado de datos del análisis regular es que la salida que se raspa está destinada a ser mostrada a un usuario final , en lugar de ser una entrada para otro programa. Por lo tanto, no suele estar documentado ni estructurado para un análisis conveniente. El raspado de datos a menudo implica ignorar datos binarios (generalmente imágenes o datos multimedia), formato de visualización , etiquetas redundantes, comentarios superfluos y otra información que es irrelevante o dificulta el procesamiento automatizado.

La extracción de datos se realiza con mayor frecuencia para interactuar con un sistema heredado , que no tiene otro mecanismo que sea compatible con el hardware actual , o para interactuar con un sistema de terceros que no proporciona una API más conveniente . En el segundo caso, el operador del sistema de terceros a menudo considerará el screen scraping como no deseado, debido a motivos como el aumento de la carga del sistema , la pérdida de ingresos por publicidad o la pérdida de control del contenido de la información.

El raspado de datos generalmente se considera una técnica ad hoc y poco elegante, que a menudo se utiliza sólo como "último recurso" cuando no hay ningún otro mecanismo disponible para el intercambio de datos. Aparte de la mayor sobrecarga de programación y procesamiento, las pantallas de salida destinadas al consumo humano suelen cambiar de estructura con frecuencia. Los humanos pueden hacer frente a esto fácilmente, pero un programa informático fallará. Dependiendo de la calidad y el alcance de la lógica de manejo de errores presente en la computadora , esta falla puede generar mensajes de error, resultados corruptos o incluso fallas del programa .

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

Variantes técnicas

raspado de pantalla

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

Aunque el uso de " terminales tontos " físicos 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 usando la técnica de screen scraping para capturar pantallas antiguas y transferir los datos a interfaces modernas. . [2]

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

Como ejemplo concreto de un raspador de pantalla clásico, consideremos un hipotético sistema heredado que data de la década de 1960, los albores del procesamiento de datos computarizados . Las interfaces de computadora a usuario de esa época eran a menudo simplemente terminales tontas basadas en texto que no eran mucho más que teleimpresores virtuales (tales sistemas todavía se utilizan hoy en día , por varias razones). Es común el deseo de interconectar un sistema de este tipo con sistemas más modernos. Una solución sólida a menudo requerirá cosas que ya no están disponibles, como código fuente , documentación del sistema , 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 raspador de pantalla que "finge" ser un usuario en una terminal. El raspador 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 resistente de este tipo, construida sobre una plataforma que proporcione la gobernanza y el control que requiere una empresa importante (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.) Se puede decir que es un ejemplo de software de automatización de procesos robóticos , llamado RPA o RPAAI para RPA 2.0 autoguiado basado en inteligencia artificial .

En la década de 1980, proveedores de datos financieros como Reuters , Telerate y Quotron mostraban datos en formato 24×80 destinado a un lector humano. Los usuarios de estos datos, particularmente los bancos de inversión , escribieron aplicaciones para capturar y convertir estos datos de caracteres como datos numéricos para incluirlos en cálculos para decisiones comerciales sin volver a ingresar los datos. El término común para esta práctica, especialmente en el Reino Unido , era destrucción de páginas , ya que se podía imaginar que los resultados habían pasado por una trituradora de papel . Internamente, Reuters utilizó 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 de captura de pantalla más modernas incluyen capturar los datos del mapa de bits de la pantalla y ejecutarlos a través de un motor OCR o, para algunos sistemas de prueba automatizados especializados, comparar los datos del mapa de bits de la pantalla con los resultados esperados. [4] Esto se puede combinar en el caso de aplicaciones GUI , con la consulta de los controles gráficos obteniendo mediante programación 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 es utilizar, en lugar de una secuencia de pantallas como entrada, un conjunto de imágenes o archivos PDF, por lo que existen algunas superposiciones con las técnicas genéricas de "extracción de documentos" y extracción de informes.

Hay muchas herramientas que se pueden utilizar para realizar screen scraping. [5]

raspado web

Las páginas web se crean utilizando lenguajes de marcado basados ​​en texto ( HTML y XHTML ) y, con frecuencia, contienen una gran cantidad de datos útiles en forma 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 kits de herramientas que eliminan 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 sin costo para los usuarios finales. Las formas más nuevas de web scraping implican escuchar fuentes de datos de servidores web. Por ejemplo, JSON se utiliza habitualmente como mecanismo de almacenamiento de transporte entre el cliente y el servidor web.

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

Los sitios web grandes suelen utilizar algoritmos defensivos para proteger sus datos de los raspadores web y limitar la cantidad de solicitudes que una IP o una red IP puede enviar. Esto ha provocado una batalla continua entre los desarrolladores de sitios web y los desarrolladores de scraping. [9]

.mw-parser-output .vanchor>:target~.vanchor-text{background-color:#b1d2ff}Reportar minería

La minería de informes es 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 que funcione, estándares de conectividad adecuados o una API y, por lo general, consultas complejas. Al utilizar las opciones de informes estándar del sistema fuente y dirigir la salida a un archivo spool en lugar de a una impresora , se pueden generar informes estáticos adecuados para el análisis fuera de línea mediante la extracción de informes. [10] Este enfoque puede evitar el uso intensivo de la CPU durante el horario comercial, puede minimizar los costos de licencia de usuario final para los clientes de ERP y puede ofrecer creación de prototipos y desarrollo de informes personalizados muy rápido. Mientras que el raspado de datos y el raspado web implican interactuar con resultados dinámicos, la minería de informes implica extraer 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 la necesidad de programar una API para el sistema fuente.

Ver también

Referencias

  1. ^ Glez-Peña, Daniel (30 de abril de 2013). "Tecnologías de web scraping en un mundo API". Sesiones informativas en Bioinformática . 15 (5): 788–797.
  2. ^ "En la década de 1990... 2002... 2016... todavía, según Chase Bank , un problema importante. Ron Lieber (7 de mayo de 2016). "Jamie Dimon quiere protegerlo de empresas emergentes innovadoras". Los New York Times .
  3. ^ Los colaboradores se preocupan por el plan de Reuters de cambiar de la red de monitores a IDN, FX Week , 2 de noviembre de 1990
  4. ^ Sí, Tom (2009). "Sikuli: uso de capturas de pantalla de la GUI para búsqueda y automatización" (PDF) . UIST . Archivado desde el original (PDF) el 14 de febrero de 2010 . Consultado el 16 de febrero de 2015 .
  5. ^ "¿Qué es el screen 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. ^ Metz, Rachel (1 de junio de 2012). "Una startup espera ayudar a las computadoras a comprender las páginas web". Revisión de tecnología del MIT . Consultado el 1 de diciembre de 2014 .
  8. ^ 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". CABLEADO . Archivado desde el original el 11 de mayo de 2015 . Consultado el 8 de mayo de 2015 .
  9. ^ ""Tráfico inusual desde su red informática"". Ayuda de búsqueda de Google . Consultado el 4 de abril de 2017 .
  10. ^ Scott Steinacher, "Data Pump transforma los datos del host", InfoWorld , 30 de agosto de 1999, p55

Otras lecturas