PopplerでPDFを読む

Poppler はPDF操作のためのライブラリで、これをPythonから使えるようにしたのが python-poppler ライブラリである。pip install python-poppler で入る。

conda の場合は brew install poppler cmakeconda install popplerpip install --no-deps python-poppler で入った。

ローカルのPDFファイルを読んでテキスト化する:

import poppler

pdf = poppler.load_from_file("test.pdf")
for i in range(pdf.pages):
    p = pdf.create_page(i)
    print(p.text())

URLで指定されたPDFファイルを読んでテキスト化する:

import requests
import poppler

r = requests.get("https://example.org/test.pdf")
pdf = poppler.load_from_data(r.content)
for i in range(pdf.pages):
    p = pdf.create_page(i)
    print(p.text())

PDFスクレイピングにはほかに pdfminer.sixpdfplumber などさまざまなツールがある。@barobaro さんの記事、IMABARI ZINE さんの記事、PythonでPDFからテキスト/表情報の抽出精度を比較してみたなど参照。