Articulo de referencia

Data scraping

Data scraping is a technique where a computer program extracts data from human-readable output coming from another program. Description Normally, data transfer between programs ...

Data scraping is a technique where a computer program extracts data from human-readable output coming from another program.

Description

Normally, data transfer between programs is accomplished using data structures suited for automated processing by computers, not people. Such interchange formats and protocols are typically rigidly structured, well-documented, easily parsed, and minimize ambiguity. Very often, these transmissions are not human-readable at all.

Thus, the key element that distinguishes data scraping from regular parsing is that the data being consumed is intended for display to an end-user, rather than as an input to another program. It is therefore usually neither documented nor structured for convenient parsing. Data scraping often involves ignoring binary data (usually images or multimedia data), display formatting, redundant labels, superfluous commentary, and other information which is either irrelevant or hinders automated processing.

Data scraping is most often done either to interface to a legacy system, which has no other mechanism which is compatible with current hardware, or to interface to a third-party system which does not provide a more convenient API. In the second case, the operator of the third-party system will often see screen scraping as unwanted, due to reasons such as increased system load, the loss of advertisementrevenue, or the loss of control of the information content.

Data scraping is generally considered an ad hoc, inelegant technique, often used only as a "last resort" when no other mechanism for data interchange is available. Aside from the higher programming and processing overhead, output displays intended for human consumption often change structure frequently. Humans can cope with this easily, but a computer program will fail. Depending on the quality and the extent of error handling logic present in the computer, this failure can result in error messages, corrupted output or even program crashes.

However, setting up a data scraping pipeline nowadays is straightforward, requiring minimal programming effort to meet practical needs (especially in biomedical data integration).[1]

Technical variants

Screen scraping

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.

Another modern adaptation to these techniques is to use, instead of a sequence of screens as input, a set of images or PDF files, so there are some overlaps with generic "document scraping" and report mining techniques.

There are many tools that can be used for screen scraping.[5]

Web scraping

Web pages are built using text-based mark-up languages (HTML and XHTML), and frequently contain a wealth of useful data in text form. However, most web pages are designed for human end-users and not for ease of automated use. Because of this, tool kits that scrape web content were created. A web scraper is an API or tool to extract data from a website.[6] Companies like Amazon AWS and Google provide web scraping tools, services, and public data available free of cost to end-users. Newer forms of web scraping involve listening to data feeds from web servers. For example, JSON is commonly used as a transport storage mechanism between the client and the web server.[7] A web scraper uses a website's URL to extract data, and stores this data for subsequent analysis. This method of web scraping enables the extraction of data in an efficient and accurate manner.[8]

Recently, companies have developed web scraping systems that rely on using techniques in DOM parsing, computer vision and natural language processing to simulate the human processing that occurs when viewing a webpage to automatically extract useful information.[9][10]

Large websites usually use defensive algorithms to protect their data from web scrapers and to limit the number of requests an IP or IP network may send. This has caused an ongoing battle between website developers and scraping developers.[11]

Report mining

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.