3
暗号化されたPDFからのPythonデータの抽出
私は純粋な数学の最近の卒業生で、基本的なプログラミングコースをほとんど履修していません。私はインターンシップを行っており、内部データ分析プロジェクトがあります。ここ数年の内部PDFを分析する必要があります。PDFは「保護されています」。つまり、暗号化されます。PDFパスワードはありません。さらに、パスワードが存在するかどうかは不明です。しかし、これらのドキュメントはすべて揃っており、手動で読むことができます。印刷することもできます。目標は、私たちがいくつかのアイデアを持っている言語であるPythonで読むことです。 まず、いくつかのPythonライブラリでPDFを読み込もうとしました。しかし、私が見つけたPythonライブラリは暗号化されたPDFを読みません。当時は、Adobe Readerでもエクスポートできませんでした。 次に、PDFを復号化することにしました。Pythonライブラリーpykepdfを使用して成功しました。Pykepdfは非常にうまく機能します!ただし、復号化されたPDFは、前のポイントのPythonライブラリ(PyPDF2およびTabula)でも読み取ることができません。現時点では、Adobe Readerを使用して復号化されたPDFから情報をエクスポートできるため、多少の改善がありましたが、目的はすべてをPythonで行うことです。 私が示しているコードは、暗号化されていないPDFでは完全に機能しますが、暗号化されたPDFでは機能しません。pykepdfで取得した復号化されたPDFでも機能しません。 私はコードを書きませんでした。PythonライブラリPykepdfとTabulaのドキュメントで見つけました。PyPDF2ソリューションは、Al Sweigartの著書「Automate the Boring Stuff with Python」で私が強く推奨しています。また、前に説明した制限付きで、コードが正常に機能していることも確認しました。 最初の質問、プログラムが暗号化されたことのないファイルで動作する場合、なぜ復号化されたファイルを読み取れないのですか? 2番目の質問、復号化されたファイルをPythonで何らかの方法で読み取ることができますか?どのライブラリがそれを実行できるか、または不可能ですか?復号化されたPDFはすべて抽出可能ですか? あなたの時間と助けてくれてありがとう!!! これらの結果は、Python 3.7、Windows 10、Jupiter Notebooks、およびAnaconda 2019.07を使用して見つかりました。 Python import pikepdf with pikepdf.open("encrypted.pdf") as pdf: num_pages = len(pdf.pages) del pdf.pages[-1] pdf.save("decrypted.pdf") import tabula tabula.read_pdf("decrypted.pdf", stream=True) import PyPDF2 pdfFileObj=open("decrypted.pdf", "rb") pdfReader=PyPDF2.PdfFileReader(pdfFileObj) pdfReader.numPages pageObj=pdfReader.getPage(0) pageObj.extractText() Tabulaを使用すると、「出力ファイルが空です」というメッセージが表示されます。 PyPDF2では、「/ n」のみが表示されます UPDATE …