Poppler はPDF操作のためのライブラリで、これをPythonから使えるようにしたのが python-poppler ライブラリである。pip install python-poppler で入る。
conda の場合は brew install poppler cmake、conda install poppler、pip 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.six や pdfplumber などさまざまなツールがある。@barobaro さんの記事、IMABARI ZINE さんの記事、PythonでPDFからテキスト/表情報の抽出精度を比較してみたなど参照。