SCRAPPING DE PDFs CON PYTHON

JUE, 7 / JUL / 2022

Python es un lenguaje de alto nivel de programación interpretado, cuya filosofía hace hincapié en la legibilidad de su código. Se utiliza para desarrollar aplicaciones de todo tipo, como Instagram, Netflix, Spotify, Panda 3D, y otras.​

En este Informe USERS aprenderás a extraer datos en forma automatizada gracias a un proceso denominado PDF scrapping, para lo cual utilizarás el siempre versátil lenguaje Python.

Autor: Darío Mauricio Fernández

Python

Sin duda alguna, como reza la web oficial del lenguaje, “Python is a programming language that lets you work quickly and integrate systems more effectively” (“Python es un lenguaje de programación que te permite trabajar con más rapidez e integrar sistemas más efectivamente”).

Pero no nos quedemos solo con esa opinión (que, además, puede resultar tendenciosa al estar escrita por la misma gente que provee el lenguaje). Es posible recurrir a alguna medida más o menos independiente y comprobar su popularidad: el índice TIOBE sobre lenguajes de programación lo ubica en el puesto número uno mientras escribo estas líneas. Y, en palabras del CEO de la empresa que elabora el índice, “…in 2021, Python became unstoppable…” (“en 2021, Python se volvió imparable”).

scrapping 02

Índice TIOBE para Python (2002/2022)

¿Qué lo hace tan atractivo? Quizá sea su flexibilidad para adaptarse a muchas tareas. Pero lo que, parece, hizo explotar su fama fue el advenimiento de la Inteligencia Artificial y el Machine Learning, áreas en las que Python se destaca.

Además, como sucede con otros lenguajes, es fundamental la existencia de una comunidad sólida detrás de Python, tanto para desarrollar nuevos releases como para solucionar dudas y bugs.

¿Python sirve para otras cosas?

¡Claro que sí! Ya mencionamos antes la AI y el ML. Pero la lista se vuelve interminable.

  • ¿Quieres seguir la evolución de una criptomoneda y que te avise cuando sucedan ciertos eventos? Python puede conectarse a las APIs necesarias para esa tarea.
  • ¿Quieres iniciarte en el desarrollo front-end, conoces Python y no deseas aprender un nuevo lenguaje? PyScript permite ejecutar código Python dentro de HTML.
  • ¿Quieres graficar una pirámide poblacional con los vacunados contra COVID-19? Python tiene bibliotecas para facilitar enormemente la representación gráfica de datos.
  • ¿Quieres automatizar la lectura y posterior proceso de datos en hojas de cálculo? Python tiene librerías que permiten leer y generar hojas de cálculo en los formatos más conocidos.
  • ¿Quieres crear un bot que acceda a una web, con su usuario, y realice determinadas tareas repetitivas?        Python puede manejar, de manera remota, un web browser y, mediante la técnica de web scrapping, realizar tareas en la Web.
  • ¿Quieres tomar un archivo PDF y extraer información útil de él? Bueno, si eso es lo que quieres, has llegado al lugar correcto.

Scrapping: una de esas palabras que es mejor no traducir

Indudablemente, en el mundo de las TICs, existen palabras que se usan en el idioma inglés, aun cuando tienen equivalentes en el español. Scrapping no escapa a esta realidad. Sin embargo, podemos decir que esta técnica implica “hurgar” en el contenido de un archivo en busca de datos que nos interesen.

Leer el contenido de un PDF

Quizás, a esta altura de la lectura, te estarás preguntando: ¿por qué necesitaría que una aplicación leyera el contenido de un PDF, si ya existen muchas (y muy buenas) que lo hacen? Bueno, la idea no es quedarte en la mera lectura del archivo en búsqueda de determinada información, sino integrar esa capacidad en una aplicación que automatice el proceso. Imagina tener 1000 facturas de tu proveedor en formato PDF para procesar en un sistema de gestión.

scrapping 03

La opción más simple es hacerlo manualmente. La que te proponemos es automatizar ese proceso, de una manera sencilla (y, de paso, aprender algo de Python).

¿Es posible complejizar este ejemplo? ¡Claro! Imagina tener un extracto de tus movimientos bancarios de un determinado mes en un archivo PDF. ¿Los proceso manualmente, movimiento por movimiento? ¿O le digo a Python que busque patrones –llamadas expresiones regulares o regex– y agrupe el monto de las operaciones según su tipo (por ejemplo: depósitos, cheques, impuestos, gastos)?

¿Y si te digo que esta segunda opción puede ser fácilmente implementada con Python?

Como puedes ver, el universo de aplicación de esta técnica de scrapping es bastante amplio.

¿Solo sobre PDFs se puede aplicar esta técnica?

Pues no. Como anticipé anteriormente, también puedes aplicarla en contenido de la Web, lo que se conoce como web scrapping.

Con este método, es bastante simple generar un bot que, por ejemplo, siga ciertos pasos en un sitio web para obtener una información o realizar una operación determinada.

Pero ¿no es mejor –y más seguro, y más simple– utilizar una API provista por ese sitio? ¡Claro! ¡Pero no todas las webs que nos interesan disponen de una API para accederla!

¿Ya te convencí de la utilidad del PDF scrapping? ¡Enhorabuena!

Ahora seguramente te estarás preguntando si el proceso involucra demasiado desarrollo. La respuesta es un contundente ¡no! (y esa es una ventaja de Python: grandes resultados con poco código).

Puedes combinar la biblioteca estándar de Python con algunos módulos de terceros. Veamos algunos de ellos.

Continúa leyendo el Informe USERS 217 , conoce las herramientas disponibles y aprende a entrenar con la herramientas disponibles.

Informe USERS es una publicación digital semanal exclusiva para suscriptores de RedUSERS Premium, en ella analizamos en profundidad temas de actualidad en tecnología: tendencias, aplicaciones, hardware, nuevas tecnologías y más.


RedUSERS PREMIUM contiene cientos de publicaciones y puedes leerlas a todas, por una mínima cuota mensual SUSCRIBETE!

¡Comparte esta noticia!