Python analizando formularios PDF: PDFPlumber vs Camelot
Para obtener los detalles de la hoja de puntuación de un proyecto con certificación LEED, puede obtenerla de la página del proyecto del USGBC o de la puntuación del proyecto en formato PDF. analizado en la tabla. Tomando como ejemplo el proyecto de medalla de oro LEED EM: OB v2009 de Chongqing, el formato de la tabla de puntuación del proyecto LEED publicada por USGBC no es uniforme y requiere una mayor limpieza después de ser capturada con XPath. Relativamente hablando, los datos en el archivo PDF del formulario de calificación de proyectos LEED correspondiente están más estandarizados y completos. Por lo tanto, consideramos intentar analizar la tabla en el archivo PDF para su posterior análisis.
Los paquetes de Python para procesar archivos PDF incluyen pdfminer, tabula, pdfplumber, camelot... La información de la consulta muestra que todos parecen creer en general que pdfminer no es muy efectivo, mientras que tabula requiere soporte de Java. Quería ser vago, así que solo probé pdfplomber y camelot.
No entraré en detalles sobre el proceso de instalación, solo miraré los resultados.
pdfplomber no puede resolver directamente el problema de la tabla en el archivo Scorecard.pdf, pero de hecho no es difícil resolver este problema. Para ajustar su forma de pensar, primero puede analizar el texto en el archivo pdf para poder obtener la tabla después de la descomposición.
Utilice el comando pdfplumber extract_text() para analizar el texto en el archivo pdf. Sin embargo, debido a la necesidad de analizar el diseño de la tabla de puntuación en el archivo pdf, las líneas de texto de la izquierda y la derecha. las tablas no están completamente alineadas. Por lo tanto, si analiza directamente el texto de la página completa, el texto será incorrecto. Primero use el comando corp () para especificar el rango de reconocimiento y luego extraiga _text (). La lista de texto reconocido es la siguiente.
En casos como este, en los que el formulario Scorecard.pdf está fuera de lugar, también puede especificar el alcance del reconocimiento del formulario en función de la posición del formulario en la página. El comando utilizado: camelot.plot () puede dibujar un boceto de página y el parámetro table_area puede especificar el rango de reconocimiento de formulario.
Además, Camelot fue originalmente la ubicación del palacio del Rey Arturo y los Caballeros de la Mesa Redonda. Al igual que Valhalla en Asgard, es un lugar sagrado legendario. Me encontré con esto mientras buscaba un instalador del programa Camelot y fue una gran adición a mis conocimientos.
[1] Python: análisis de texto y tablas PDF: uso y comparación de pdfminer, tabula, pdfplumber
[2] Uso de Python para extraer datos tabulares de archivos pdf
[3] Python lee archivos pdf
[4] Github: pdfplumber
[5] Camelot: extracción humana de tablas PDF
[6 ] ImageMagick Instalación
[7] Conversión de PDF a imagen de ImageMagick
[8] LEED 2009 para edificios existentes: operaciones y mantenimiento
[9] Camelot - Wikipedia p>
[10] Lista de 10 lugares mitológicos fascinantes
[11] Suplemento de configuración de parámetros para el formulario pdf de reconocimiento de Camelot