1. Einleitung
Ich habe nachts das Buch „Python Network Data Collection“ gelesen und den Code zum Lesen von PDF-Inhalten gesehen. Mir fiel ein, dass Jisouke gerade ein Webseiten-PDF veröffentlicht hatte Mit den Regeln zum Durchsuchen von Inhalten kann diese Regel PDF-Inhalte als HTML für das Durchsuchen von Webseiten behandeln. Der Zauber liegt an der Fähigkeit von Firefox, PDF-Dateien zu analysieren und das PDF-Format in HTML-Tags wie div-Tags zu konvertieren, sodass die Webcrawler-Software GooSeeker zum Crawlen strukturierter Inhalte wie gewöhnliche Webseiten verwendet werden kann.
Dies wirft die Frage auf: Wie weit kann dies mit einem Python-Crawler erreicht werden? Nachfolgend werden ein experimenteller Prozess und ein Quellcode beschrieben.
2. Python-Quellcode zum Konvertieren von PDF in Text
Der folgende Python-Quellcode liest den Inhalt der PDF-Datei (im Internet oder lokal), wandelt ihn in Text um und druckt ihn aus aus . Dieser Code verwendet hauptsächlich die Bibliothek eines Drittanbieters PDFMiner3K, um PDF in eine Zeichenfolge einzulesen, und konvertiert sie dann mithilfe von StringIO in ein Dateiobjekt. (Die Download-Adresse für den Quellcode finden Sie in der GitHub-Quelle am Ende des Artikels)
from urllib.request import urlopen from pdfminer.pdfinterp import PDFResourceManager, process_pdf from pdfminer.converter import TextConverter from pdfminer.layout import LAParams from io import StringIO from io import open def readPDF(pdfFile): rsrcmgr = PDFResourceManager() retstr = StringIO() laparams = LAParams() device = TextConverter(rsrcmgr, retstr, laparams=laparams) process_pdf(rsrcmgr, device, pdfFile) device.close() content = retstr.getvalue() retstr.close() return content pdfFile = urlopen("http://pythonscraping.com/pages/warandpeace/chapter1.pdf") outputString = readPDF(pdfFile) print(outputString) pdfFile.close()
Wenn sich die PDF-Datei auf Ihrem Computer befindet, ersetzen Sie das von urlopen zurückgegebene pdfFile-Objekt durch das normale open() Dateiobjekt.
3. Outlook
Dieses Experiment konvertiert nur PDF in Text, nicht jedoch wie eingangs erwähnt, ob diese Funktion in der Python-Programmierumgebung verfügbar ist in der Zukunft gesehen werden.