Web-Scraping for Non-Programmers: Introducing OXPath for Digital Library Metadata Harvesting

De TallerDocumental on Wiki
Saltar a: navegación, buscar

Referencia bibliográfica

  • Tim Furche, Georg Gottlob, Giovanni Grasso, Christian Schallhart, and Andrew Sellers. 2013. “Web-Scraping for Non-Programmers: Introducing OXPath for Digital Library Metadata Harvesting.” Code{4}lib Journal 22 (1):47–72. https://doi.org/10.1007/s00778-012-0286-6

Resumen original

Building up new collections for digital libraries is a demanding task. Available data sets have to be extracted which is usually done with the help of software developers as it involves custom data handlers or conversion scripts. In cases where the desired data is only available on the data provider’s website custom web scrapers are needed. This may be the case for small to medium-size publishers, research institutes or funding agencies. As data curation is a typical task that is done by people with a library and information science background, these people are usually proficient with XML technologies but are not full-stack programmers. Therefore we would like to present a web scraping tool that does not demand the digital library curators to program custom web scrapers from scratch. We present the open-source tool OXPath, an extension of XPath, that allows the user to define data to be extracted from websites in a declarative way. By taking one of our own use cases as an example, we guide you in more detail through the process of creating an OXPath wrapper for metadata harvesting. We also point out some practical things to consider when creating a web scraper (with OXPath). On top of that, we also present a syntax highlighting plugin for the popular text editor Atom that we developed to further support OXPath users and to simplify the authoring process.

Resumen detallado

La conservación de datos es una tarea típica realizada por personas con una biblioteca y antecedentes en ciencias de la información. Estas personas son muy conscientes de los lenguajes de marcado como XML o HTML y tal vez conozcan un poco sobre DOM o procesen recursos XML con XPath o XSLT. Pero para codificar web para varios sitios, necesitan el apoyo de programadores reales. Para eludir esta participación de los desarrolladores de software y capacitar a bibliotecarios y documentalistas, los kits de herramientas de web scraping son una excelente manera de recopilar contenido sin profundizar en los problemas de programación, como los entornos de desarrollo o la administración de dependencias. Uno de estos kits de herramientas es OXPath que se presenta en la segunda sección de este artículo.

En un primer vistazo, OXPath puede parecer bastante complicado, pero tenga en cuenta que el público objetivo de esta herramienta no son los desarrolladores completos, sino los bibliotecarios y documentalistas. Hemos visto a estas personas preparándose para raspar sus primeros recursos web después de un breve tutorial y algunas demostraciones. Incluso los estudiantes de LIS sin ningún conocimiento previo de raspado web y HTML / XML podían escribir sus primeras líneas de OXPath después de 2 horas. Creemos que su conocimiento general de la estructura y la presentación del material relacionado con la biblioteca les ayuda a manejar la tarea. Desde nuestro entendimiento, esta es una base perfecta para OXPath, ya que es fácil de instalar y permite a los usuarios sumergirse en el raspado de la web de inmediato sin aprender a instalar y mantener un entorno de desarrollo con dependencias, etc.

En los casos en que un proveedor de metadatos no puede proporcionar una API o herramienta similar, tendrá que recopilar los datos de su sitio web público, tal como se muestra al usuario humano. Esto podría hacerse de forma manual, lo que puede requerir mucho trabajo, o uno tendría que programar un raspador específicamente adaptado al sitio web de destino que extraiga los datos por usted. Para los no programadores, las herramientas de extracción de datos web ofrecen una alternativa a la redacción de un raspador web completo desde cero. La mayoría de ellos, como FMiner, ParseHub o import.io, son comerciales con costos bastante altos o tarifas de suscripción. Otro problema con esas herramientas basadas en GUI es que a menudo faltan algunas características avanzadas o que la interfaz de usuario limita eso que no permite el uso de todas las características del software de raspado subyacente. OXPath es una herramienta gratuita y de código abierto OXPath que permite al usuario definir los datos que se extraerán de manera declarativa. El lenguaje de OXPath se basa en el lenguaje de consulta XML XPath 1.0 pero amplía las capacidades de XPath con algunos elementos que permiten la simulación de la interacción del usuario con una página web y la extracción de datos en el curso de estas interacciones. Esas extensiones son, por ejemplo, acciones como hacer clic y llenar formularios, un medio de iteración para permitir la navegación a través de contenido paginado y marcadores de extracción. Además, además de las funciones XPath, OXPath introduce algunas funciones útiles adicionales para manipular los datos antes de extraerlos.

En el campo de las bibliotecas digitales, OXPath puede utilizarse para recolectar metadatos bibliográficos de los sitios. En primer lugar, para el web scraping en general, se debe tener en cuenta el hecho de que los datos que obtiene pueden ser complicados. Los metadatos en páginas web deben mostrarse a un usuario real. También puede haber algunos metadatos que no se muestran en absoluto, por ejemplo, identificadores únicos para cada conjunto de datos / publicación, por lo que necesita una estrategia para eso. Otro punto es que uno debe asegurarse de que el propietario del sitio web esté bien informado sobre el robo web de OXPath, ya sea con una asignación general para ellos o un acuerdo específico. El rastreo de recursos web en general debe respetar algunas reglas de cortesíaya que los servidores web tienen políticas implícitas y explícitas que regulan la velocidad a la que un rastreador como OXPath puede visitarlas. OXPath intercambia velocidad para la eficiencia de la memoria. Por lo tanto, una secuencia de comandos OXPath en algunos casos puede demorar horas o días en ejecutarse. Por otro lado, OXPath mantiene una huella de memoria bastante pequeña en comparación con otras herramientas creadas para extraer datos masivos de páginas web.

A pesar de sus limitaciones, OXPath es una herramienta poderosa y útil para recolectar datos semiestructurados de recursos web. Creemos que es especialmente adecuado para bibliotecarios sin conocimientos de programación con un conocimiento general de las tecnologías XML. De hecho, todo lo que necesita para un primer inicio son los binarios de OXPath, un entorno de tiempo de ejecución Java instalado en su sistema y un editor de texto sin formato para escribir la expresión. Una expresión OXPath se puede escribir usando cualquier editor de texto. Hoy en día, muchos editores de texto también incluyen soporte para diferentes lenguajes formales (como programación o lenguajes de marcado) al proporcionarles resaltado de sintaxis. El resaltado de sintaxis o coloreado de sintaxis no tiene ninguna función más que ayudar al lector humano y escritor de código fuente. Cuando diferentes elementos estructurales y palabras clave son discriminados visualmente por diferentes colores, ayuda al lector con la orientación en el código preescrito. Además, al escribir código, resaltar ayuda a detectar errores potenciales (léxicos); por ejemplo, cuando una palabra clave está mal escrita, no recibe el colorido específico de la palabra clave.

Comentario personal

OXPath es una tecnología fácil de aprender, es una valiosa alternativa a otras herramientas de web scraping especialmente para bibliotecarios, no solo porque es de código abierto y gratuito, sino también porque proporciona un control total del proceso de extracción. Es suficiente un conocimiento básico de XML y su lenguaje de consulta XPath es suficiente para comenzar con el lenguaje debásico de OXPath, no se requieren grandes habilidades de programación. Tampoco requiere instalación y solo un entorno de trabajo simple con Java y una línea de comando. En entornos como lo de las bibliotecas digitales puede ser de gran utilidad en muchos escenarios aunque se dispone de pocas herramientas para desarrollarlos, aplicando colores en la sintaxis con un editor de texto puede ser de ayudapara iniciarse con OXPath.

Bibliografía

  • Furche T, Gottlob G, Grasso G, Schallhart C, Sellers A. 2013. Oxpath: A language for scalable data extraction, automation, and crawling on the deep web. The VLDB Journal 22:47–72. doi:10.1007/s00778-012-0286-6
  • Michels C, Fayzrakhmanov, R.R., Ley, M., Sallinger E, Schenkel R. 2017. Oxpath-based data acquisition for dblp. In: JCDL ’17: Proceedings of the 17th ACM/IEEE-CS on Joint Conference on Digital Libraries; 2017 June 19-23; New York, NY, USA. ACM. p. 319-320. To appear.
  • Ley M. 2009. DBLP: Some Lessons Learned. Proceedings of the VLDB Endowment 2(2):1493–1500. doi:10.14778/1687553.1687577.
  • Schaer P, Neumann M. 2017. Enriching Existing Test Collections with OXPath. In: Jones GJ, Lawless S, Gonzalo J, Kelly L, Goeuriot L, Mandl T, Cappellato L, Ferro N, editors. Experimental IR Meets Multilinguality, Multimodality, and Interaction. Proceedings of the 8th International Conference of the CLEF Association, CLEF 2017; 2017 Sept 11-14; Dublin, Ireland. To appear.



Categorías

  OXPath | XPath | programación

Barbara (discusión) 12:18 30 nov 2017 (CET)