Heim  >  Artikel  >  Backend-Entwicklung  >  Python liest PDF-Inhalte

Python liest PDF-Inhalte

高洛峰
高洛峰Original
2016-11-22 16:44:511837Durchsuche

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.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn