Python は PDF コンテンツを読み取ります

高洛峰
リリース: 2016-11-22 16:44:51
オリジナル
1840 人が閲覧しました

1. はじめに

夜に「Python Network Data Collection」という本を読んでいて、PDF コンテンツを読み取るためのコードを見て、数日前に Jisouke が Web ページから PDF コンテンツを取得するためのクローリング ルールをリリースしたばかりだったことを思い出しました。 . このルールは、Web クローリング用に PDF コンテンツを HTML として扱うことができます。この魔法は、PDF を解析し、PDF 形式を div タグなどの HTML タグに変換する Firefox の機能によるもので、GooSeeker Web クローリング ソフトウェアを使用して、通常の Web ページと同じように構造化コンテンツをクロールできるようになります。

これにより、Python クローラーを使用してどこまで実現できるのかという疑問が生じます。以下に実験手順とソースコードを説明します。

2. PDF をテキストに変換する Python ソース コード

以下の Python ソース コードは、PDF ファイルの内容を (インターネット上またはローカルで) 読み取り、テキストに変換し、印刷します。このコードは主にサードパーティ ライブラリ PDFMiner3K を使用して PDF を文字列に読み取り、StringIO を使用してそれをファイル オブジェクトに変換します。 (ソース コードのダウンロード アドレスについては、記事の最後にある GitHub ソースを参照してください)

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()
ログイン後にコピー

PDF ファイルがコンピューター上にある場合は、urlopen によって返された pdfFile オブジェクトを通常の open() ファイル オブジェクトに置き換えます。

3. Outlook

この実験では、冒頭で述べたように PDF をテキストに変換するだけで、HTML タグには変換しません。そのため、この機能が Python プログラミング環境で利用できるかどうかは今後検討されます。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート