python - scraping - tabula pdf download
Extraer/Identificar tablas de PDF python (3)
Definitivamente deberías echarle un vistazo a esta respuesta mía:
- Extracción del contenido de la tabla de una colección de archivos PDF
y también eche un vistazo a todos los enlaces incluidos en el mismo.
Tabula/TabulaPDF es actualmente la mejor herramienta de extracción de tablas disponible para raspado de PDF.
¿Hay alguna biblioteca de código abierto que admita la identificación y extracción de tablas?
Con esto quiero decir:
- Identificar una estructura de tabla existe
- Clasifica la tabla de su contenido
- Extraiga datos de la tabla en un formato de salida útil, por ejemplo, JSON / CSV, etc.
Revisé preguntas similares sobre este tema y encontré lo siguiente:
- PDFMiner que trata el problema 3, pero parece que el usuario debe especificar a PDFMiner donde existe una estructura de tabla para cada tabla (corrígeme si estoy equivocado)
- pdf-table-extract que intenta abordar el problema 1 pero de acuerdo con la lista de To-Do pendientes, actualmente no puede identificar las tablas que están separadas por espacios en blanco. ¡Esto es un problema ya que todas las tablas en mis archivos PDF están separadas por espacios en blanco!
Actualmente, estoy pensando en que tendría que dedicar mucho tiempo a desarrollar una solución de Aprendizaje automático para identificar estructuras de tablas a partir de archivos PDF. Por lo tanto, cualquier enfoque alternativo sería más que bienvenido.
Después de muchas horas fructíferas de explorar librerías OCR, cajas delimitadoras y algoritmos de agrupamiento, encontré una solución tan simple que ¡hace que quieras llorar!
Espero que estés usando Linux;
pdftotext -layout NAME_OF_PDF.pdf
¡¡ASOMBROSO!!
Ahora tiene un buen archivo de texto con toda la información alineada en buenas columnas, ahora es trivial formatear en un csv, etc.
Es en tiempos como este en que amo a Linux, estos tipos idearon soluciones INCREÍBLES para todo, ¡y lo pusieron allí de manera GRATUITA!
Me gustaría añadir a la respuesta muy útil de Kurt Pfeifle: ahora hay un contenedor de Python para Tabula, y hasta ahora parece funcionar muy bien: https://github.com/chezou/tabula-py
Esto convertirá su tabla de PDF en un marco de datos de Pandas. También puede establecer el área en coordenadas x, y que obviamente es muy útil para datos irregulares.