Extraer datos de facturas en pdf con python - Automatizaciones con python #4
ฝัง
- เผยแพร่เมื่อ 25 ส.ค. 2024
- En este video te muestro como desarrollar un script de python para extraer la información de facturas en .pdf para posteriormente guardarla en una base de datos.
Accede a mis repositorio de código mensuales desde mi patreon: / toni_dev
💻 Mi curso de aplicaciones web con python:
www.classtoni....
👨🏻💻 Comunidad de desarrolladores
t.me/devhispanos
📲 Instagram:
/ tonidev_
✉️ Quieres automatizar alguno de tus procesos ?
automatizatusprocesos@gmail.com
---- Línea de tiempo ----
00:00 Introducción
A partir de ahora me podéis apoyar y acceder al código de mis proyectos a través de mi patreon www.patreon.com/toni_dev
Gracias por el apoyo 💪
Toni, muchas gracias, me ha servido demasiado, ahora sé qué librerías específicas estudiar y conocer bien su funcionamiento.
Gracias por la implementación, me ha gustado ver como adquieres los datos y los procesas, sin embargo este tipo de scripts tienen el problema de que no todas las facturas tienen un mismo formato, por lo que para procesarlo todo, debería de hacerse una personalización de extracción para cada proveedor, ya que la mayoría no comparten la misma estructura en sus facturas, no obstante, tienes un nuevo suscriptor, felicidades por tus aportes.
Así es. Habría que desarrollar una función de extracción de datos para cada proveedor. Además habría que añadir una buena gestión de errores por si en el futuro cambia algo en el formato de la factura.
Y si adicionamos una IA que pueda leer la imagen y buscar los caracteres básicos como $, fecha, nombre de remitente factura y aficionaría una segmentación por servicios y productos (generales)
Hay un proyecto en GitHub que está un poco parado pero funciona perfectamente a base de plantillas. Invoice2data, a mi me funciona bien y tiene utilidad con otro tipo de documentos a demás de con facturas. Creo que proyecto hace exactamente lo que comentas 👌
@@emerssonvil Supongo que si quieres capturar una serie de campos comunes a todas las facturas como una fecha, numero de factura, nombres a cargo y al cargo y un total quizá hasta sin IA se podría, pero si lo que necesitas es un detalle, la cosa se complica... creo.
Exacto. La idea es esa. Cada factura es diferente, pero la idea es la misma. Gracias, bro.
El proyecto es interesante y me gusta por eso me suscribí a tu canal. Solo te pido que aumentes el zoom porque de lo contrario voy a quedar ciego.
¿? No lo veas en celular y listo hombre... se ve perfecto!
Si lo estás viendo desde un móvil 📱 puedes hacer zoom en el vídeo como a una imagen, espero te sirva
Excelente video toni, tocas las necesidades de la gente, del dia a dia.
Sumaria mucho que compartas los repositorios de tus clases. Saludos y gracias.
En México, las empresas o personas al emitir una factura tienen que generar dos archivos el pdf y el XML el cual ya contiene la información necesaria y de ahí se puede extraer la información. Por que no todos los pdf son iguales y considero que puede ser engorroso. Felicidades por el video aporta algo útil en la comunidad de desarrolladores.
Y como que información seria buena almacenar en un excel?
coincido se aprende programacion pero en la practica es complicado... cada pdf es distinto. habria que armar un script para cada empresa que le hace una factura a la nuestra. encima si esa empresa cambia su formato el script fallaria. el XML es muy buena idea
@@ezequiel587 de hecho yo desarrolle un pequeño programa en Python para extraer la información de las facturas en formato XML y trasladarlos a un archivo Excel y es más sencillo trabajar con los XML.
@miguelrodriguez3441 Hola, a tu pregunta la respuesta es ninguna info. Lo mejor que puedes haces es guardarla en una base de datos. En excel cualquiera puede modificar la info.
Formidable ejemplo y la explicación.
Aún no vi el video. Lo encontré de casualidad. Es curioso, ya que en los próximos días tengo pensado hacer un proyecto, a fin de optimizar unos procesos en los que trabajaré , y poder extraer ciertas características de un PDF y demás. Similar a lo que dice el título. Gracias por compartir tu conocimiento.
Messirveee esta data. Gracias maquina, monstruo, genio de la vida!
Hola Toni, ya extrañaba tus videos. Saludos :D
Hola podrias colocar un link con los archivos usados en este video como la factura y el codigo para poder practicar mejor, gracias, esta muy bueno estos tipos de videos
Justo tengo un proyecto de esto, veremos el video :D
Excelente...Felicitaciones
Esto tipo de cosas me gusta
muchas gracias por tu video, tenes alguna herramienta para generar expresiones regulares??
Enhorabuena por este script practico en el día a día para nuestro trabajo. Creo que citas que el código está en Github. No tenemos el link. Gracias.
pero tienen que ser PDF iguales ? ya que el código revisa los mismos campos siempre ?
Para pdfs distintos creo que habrá que tocar de nuevo el codigo, y bueno pensandolo mejor tiene sentido buscar las coincidencias de lo que queremos. Imagino que las limitantes de esta automatización sería la forma en la que está estructura los datos.
Que buen video toni, no tenes un curso especialmente para extraccion de datos, en el trabajo del dia a dia siempe estoy combatiendo con archivos pdf, que son los mas compliacado extraer, por el momento utilizo lenguaje M de power query, es mas didactico ya que puedo ver como la info se va extrayendo, sin perdidas de algunos datos. Pero no es escalable cuando son muchos pdfs.
Saludos Tony excelente contenido gracias. Pregunta para todos por acá puedo ¿ aplicar a un trabajo de data entry remoto con este tipo de proyectos o similares me interesa aprender lo necesario para ello ? Gracias de antemano Tony .
Gracias
¿Podrías reducir el tamaño de la fuente? Pienso que con arial 0.1 estaría genial.
Hola buenas muy buen contenido, te hago una consulta? Esté rol lo cumple un analista de datos, un data science, o un data engineer?
Hola Toni, ¿como harias en Python un escaner de codigos de barras/qr para extraer info de articulos con una webcam?,
caso hipotetico: hay varias facturas de venta de diferentes clientes en el mismo pdf, como se podria generar una solo factura por cliente que contega todos los item de las facturar individuales.
Gracias Tony, con que interfaz podria cargar ese proceso de abrir las facturas en pdf y guardarlo en excel
streamlit por ejemplo
Se pueden preguntar dudas? Estoy intentandolo con unos documentos de la agencia tributaria y estoy atascado
Apenas hoy empecé a ver cosas de Python, vengo de C# y Javascript, tengo una consulta.
¿Qué ocurriría si el archivo que nos envían, la factura en este caso, tiene una contraseña de seguridad?
¿Hay algún metodo para asignar esa contraseña o simplemente leería los metadatos, la información y demás?
Como guardarías cada item?
Y si adicionamos una IA que pueda leer la imagen y buscar los caracteres básicos como $, fecha, nombre de remitente factura y aficionaría una segmentación por servicios y productos (generales)
Este video esta copiado de algun lugar no recuerdo donde pero videos de hace años, español e ingles.
El pdf muy basico, ya que existen infinidad de tipos de formatos de facturas; incluso la mayoria de pdf no son editados desde un software si no que son imagenes, lo cual si no mal recuerdo aun asi funciona o minimo tiene sus limitaciones. Y ojo no hay necesidad de IA que por aquí ya he leído a algunos genios, que lo quieren solucionar asi.
Ya comentaron tambien que EXCEL no es una BD.
Mucho que mejorar en el tema de querer compartir conocimiento.
Video cortito introductorio pero que a mas de uno ha de servir.
Sigue así. Saludos.
Ese script debe ser ejecutado manualmente, que alternativa hay para que se ejecute cierta hora del día o ciertos días de la semana? Sirve el programador de tareas de windows?
Correcto !!
@@tonidev_ y como puede ponerse en produccion el script?
@@tomasvelilladelsol4018 podes usar PythonAnywhere
si tenes 8 mil facturas y tenes q procesarlas a todas. 1. Como resolves el problema cuando el tiempo de procesamiento es de mas de 10 min? 2. Cuantas y cuales estrategias podes usar para resolver tiempo de procesamento mayor a 10 min?
que problema hay con que tarde 10 min ?
las hojas de cálculo no entran en la categoría de bases de datos pequeña acotación. Excelente el video
Pequeña acotación: Un excel si que puede considerarse una base de datos. Quizás estas confundiendo una "base de datos' con "base de datos relacional". Pero existen varios tipos de BBDD por ejemplo relacional, key-value, en memoria, de grafos, etc. Hasta un archivo plano podrías usar como base de datos, solo que cada uno te da prestaciones diferentes 😉
Cuando te las das de sabiando sin saber:
Si pues, que bobo. Cuando te enseñan bases de datos es literal el primer ejemplo que te enseñan
Estás loco claro que son un base de datos
Se puede construir una app usando como base de datos google sheets
Se agradeceria por mi parte que el codigo sea mas grande, la verdad es que no veo un mojon
Este video esta copiado y encima cobra! estos españolitos,.....
ES UNA LASTIMA QUE GENTE COMO VOS, COBREN POR SU CONOCIMIENTO, SI VAN A DAR TUTOS ES PARA ENSEÑAR A LA GENTE, SI QUIERO PAGAR ALGO MEJOR UN CURSO
Hijito, cuando te oigo decir "lopear" siendo deseos de soltarte algún improperio, cosa que no voy a hacer porque no es elegante, pero sí te digo que ya podías aprender a hablar correctamente el castellano antes de querer convertirte en profesor de lo que sea.
jejeje, entiendo lo que dices, no obstante, el término correcto no es "lopear" es "loopear", es decir, hacer "loops", "ciclos", "iteraciones", etc... La verdad es que quizá no te guste, pero es un "término" usado y para tu sorpresa... por más de un profesional. Igualmente... ¡SI!, coincido contigo en que queda mucho mejor un concepto acorde a la lengua en la que se habla en el vídeo que un "anglicanismoespañolizado". Un saludo.
@@shinewaine2344Loopear, que clase de casteingles es eso😅.
Loop = bucle, ciclo.
Entonces ciclar o ciclo es el término correcto.
Saludos.
Gracias