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 プログラミング環境で利用できるかどうかは今後検討されます。