Python- und PDF-Parsing: Gibt es moderne, leistungsstarke und gut gepflegte Open-Source-Bibliotheken?

Ich suche gut gepflegte und gut dokumentierte leistungsstarke PDF-Parsing-Bibliotheken für Python (hauptsächlich zum Extrahieren und Analysieren von Daten aus verschiedenen PDF-Typen mit unterschiedlichen/unvorhersehbaren Strukturen, auch mit Hilfe von zuverlässiger und leistungsstarker OCR).

Derzeit sind mir folgende Hauptprojekte bekannt:


PDFMiner : https://github.com/euske/pdfminer (letzter Commit vor 11 Tagen)

PDFMiner.six : https://github.com/pdfminer/pdfminer.six (letzter Commit vor 3 Tagen - scheint das am aktivsten gepflegte Projekt zu sein)

^-- nicht sicher, genau den Unterschied zwischen den beiden verstanden zu haben.

Die PDFMiner-API erscheint mir etwas zu kompliziert in der Verwendung - siehe ein gutes Beispiel hier .


PyPDF2 : https://github.com/mstamy2/PyPDF2 (letztes Commit im Juni 2018)

PyPDF4 : https://github.com/claird/PyPDF4 (letztes Commit im Mai 2019)

Kurzversion: PyPDF4 ist ein sauberer Bruch, der entwickelt wurde, um das zu tun, was PyPDF2 getan hat, aber auf einer nachhaltigeren, geschäftswürdigeren Basis. Ja, im Prinzip hätten wir PyPDF2 (oder auch PyPDF3) einfach neu konfigurieren können, bis es dort ankam, wo PyPDF4 sein soll. Unser Urteil war, dass die Kosten für das Zurücklassen der Vermögenswerte und Verbindlichkeiten von PyPDF2 geringer waren als der Gewinn aus einem organisatorischen Neuanfang.


Moderner Tabellenparser für PDF mit Camelot-py ( https://github.com/camelot-dev/camelot ) -> das ist ein großartiges Projekt, deckt aber derzeit nur das Parsen von Tabellen in PDFs ab. Außerdem scheint es sich auf PyPDF2 & PDFMiner.six zu verlassen, um das PDF tatsächlich zu lesen.


Welche andere leistungsstarke, zuverlässige (=genau und robust) und moderne (=mit großartiger API) Open-Source-PDF-Parsing-Bibliothek, die gut gewartet wird, gibt es also für Python?

Antworten (2)

Schließlich habe ich mich für OCRmyPDF ( https://github.com/jbarlow83/OCRmyPDF ) entschieden, das Tesseract für den eigentlichen OCR-Teil verwendet ( https://github.com/tesseract-ocr/tesseract ) - so wie ich es verstehe, ist Tesseract eine OCR Tool, das von Google als Open Source bereitgestellt wurde.

OCRmyPDF hat eine großartige Dokumentation, funktioniert auch über die Befehlszeile und hat viele Sprachpakete :

ocrmypdf -l eng pdf_to_ocr.pdf new_pdf_with_ocr.pdf


Um Text aus dem PDF zu extrahieren, ist das beste Tool, das ich gefunden habe, pdftotext ( https://github.com/jalan/pdftotext ), ein Python-Wrapper für Poppler ( https://poppler.freedesktop.org/ ). Ich erhalte mit diesem Tool sehr zufriedenstellende Ergebnisse, weitaus besser als PyPDF2.


Update : Hier sind einige erstklassige PDF-Reader und -Writer für Python:

Schauen Sie sich diese unbedingt an. Obwohl ich für die Textextraktion sagen muss, dass ich es immer noch pdftotextfür die grundlegende Verwendung bevorzuge, da es die Layoutreihenfolge mit Leerzeichen gut beibehält.

Gute Frage & gute Antwort. Bitte klicken Sie auf das Häkchen, um Ihre eigene Antwort zu akzeptieren. Dies hilft anderen, die diese Frage in Zukunft lesen. Danke für diese Empfehlung :-)
Danke für den Tipp, ich habe den letzten Schritt beim Akzeptieren der Antwort verpasst :) Ich hoffe in der Tat, dass diese Informationen anderen Zeit sparen können.
Willkommen an Bord. Hoffe du bist aktiv :-)

PyPDF2 wird seit April 2022 wieder gepflegt. Wir haben massive Verbesserungen bei der Textextraktion vorgenommen und Typanmerkungen hinzugefügt. Die Dokumentation wurde verbessert, die Benutzeroberfläche ist jetzt pythonischer.

Intern haben wir Python 3.5 und niedriger als veraltet markiert + viele Unit-Tests hinzugefügt. Dies vereinfacht die Entwicklung / Wartung.

PyPDF2 ist kostenlos und Open Source.

PyPDF2 ist eine reine Python-Bibliothek ohne Abhängigkeiten.

Tolle Neuigkeiten, Prost dafür!