Python で PDF ファイルから表形式データをクロールする方法 (コード例)
この記事の内容は、Python が PDF ファイルから表形式データをクロールする方法 (コード例) に関するものです。一定の参考値があります。困っている友人が参照できます。お役に立てれば幸いです。
この記事では、少し異なるクローラーを紹介します。
従来、Web ページは HTML、CSS、JavaScript コードで記述されているため、当社のクローラーはインターネットからデータをクロールしていましたが、Web ページ内のさまざまなデータをクロールするための成熟したテクノロジーが多数存在します。今回、クロールする必要があるドキュメントは PDF ファイルです。この記事では、Python の Camlot モジュールを使用して PDF ファイルから表形式のデータをクロールする方法を説明します。
日常生活や仕事において、PDF ファイルは間違いなく最も一般的に使用されるファイル形式の 1 つであり、教科書やコースウェアから契約書や計画文書に至るまで、このファイル形式を誰もが目にすることがあります。しかし、PDF ファイルから表を抽出する方法は大きな問題です。 PDF にはテーブルを表す内部表現がないためです。このため、表形式のデータを分析のために抽出することが困難になります。では、PDF からテーブル データをクロールするにはどうすればよいでしょうか?
答えは、Python の Camlot モジュールです。
Camlot は、PDF ファイルから誰でも簡単に表形式のデータを抽出できる Python 用のモジュールです。次のコマンドを使用して、camelot モジュールをインストールできます (インストールには長い時間がかかります):
pip install camelot-py
Camelot モジュールの公式ドキュメントのアドレスは: https://camelot-py.readthedoc... 。
以下では、camelot モジュールを使用して PDF ファイルから表形式データをクロールする方法を示します。
例 1
まず、簡単な例を見てみましょう: eg.pdf. 次のように、ファイル全体には 1 ページのみがあり、このページにはテーブルが 1 つだけあります。
次の Python コードを使用して、PDF ファイル内の表を抽出します:
import camelot # 从PDF文件中提取表格 tables = camelot.read_pdf('E://eg.pdf', pages='1', flavor='stream') # 表格信息 print(tables) print(tables[0]) # 表格数据 print(tables[0].data)
出力結果は次のとおりです:
<tablelist> <table> [['ID', '姓名', '城市', '性别'], ['1', 'Alex', 'Shanghai', 'M'], ['2', 'Bob', 'Beijing', 'F'], ['3', 'Cook', 'New York', 'M']]<p>分析コード、camelot.read_pdf() は、テーブルからデータを抽出する Camlot の関数です。入力パラメータは、PDF ファイルのパス、ページ番号 (ページ)、テーブルの解析方法 (2 つの方法があります) です。ストリームと格子)。テーブル解析メソッドのデフォルトのメソッドはラティスであり、ストリームメソッドはデフォルトで PDF ページ全体をテーブルとして解析します。解析されたページ内の領域を指定する必要がある場合は、table_area パラメータを使用できます。 <br> Camlot モジュールの便利な点は、抽出されたテーブル データを pandas、csv、JSON、HTML に直接変換する関数 (tables[0].df、tables[0].to_csv() function wait など) を提供していることです。出力された CSV ファイルを例に挙げます。 </p> <pre class="brush:php;toolbar:false">import camelot # 从PDF文件中提取表格 tables = camelot.read_pdf('E://eg.pdf', pages='1', flavor='stream') # 将表格数据转化为csv文件 tables[0].to_csv('E://eg.csv')
取得された CSV ファイルは次のとおりです。
例 2
例 2 では、PDF ページの特定の領域にある表データを抽出します。 PDF ファイルのページ (部分) は次のとおりです。
ページ全体から唯一の表を抽出するには、テーブルの場所。 PDF ファイルの座標系は画像とは異なり、左下隅の頂点を原点とし、右に x 軸、上に y 軸をとります。次の Python コードを使用してページ全体を出力できます:
import camelot # 从PDF中提取表格 tables = camelot.read_pdf('G://Statistics-Fundamentals-Succinctly.pdf', pages='53', \ flavor='stream') # 绘制PDF文档的坐标,定位表格所在的位置 tables[0].plot('text')
出力結果は次のとおりです:
UserWarning: No tables found on page-53 [stream.py:292]
コード全体ではテーブルが見つかりません。これは、ストリーム メソッドが PDF ページ全体を処理するためです。デフォルトではテーブルとして設定されるため、テーブルは見つかりません。ただし、描画されたページ座標のイメージは次のとおりです。
以前の PDF ページを注意深く比較すると、上部の座標が一致していることが簡単にわかります。テーブルに対応する領域の左隅の座標は (50,620)、右下隅の座標は (500,540) です。 table_area パラメータを read_pdf() 関数に追加します。完全な Python コードは次のとおりです:
import camelot # 识别指定区域中的表格数据 tables = camelot.read_pdf('G://Statistics-Fundamentals-Succinctly.pdf', pages='53', \ flavor='stream', table_area=['50,620,500,540']) # 绘制PDF文档的坐标,定位表格所在的位置 table_df = tables[0].df print(type(table_df)) print(table_df.head(n=6))
出力結果は次のとおりです:
<class> 0 1 2 3 0 Student Pre-test score Post-test score Difference 1 1 70 73 3 2 2 64 65 1 3 3 69 63 -6 4 … … … … 5 34 82 88 6</class>
summary
PDFページ 表を作成する際には、領域を指定するパラメータの他に、上付きや下付き、セルの結合などのパラメータがあります。詳しい使い方はcamelot公式ドキュメントWebサイトをご参照ください:https://camelot -py.readthedoc....
以上がPython で PDF ファイルから表形式データをクロールする方法 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所

PytorchをCentosシステムにインストールする場合、適切なバージョンを慎重に選択し、次の重要な要因を検討する必要があります。1。システム環境互換性:オペレーティングシステム:Centos7以上を使用することをお勧めします。 Cuda and Cudnn:PytorchバージョンとCudaバージョンは密接に関連しています。たとえば、pytorch1.9.0にはcuda11.1が必要ですが、pytorch2.0.1にはcuda11.3が必要です。 CUDNNバージョンは、CUDAバージョンとも一致する必要があります。 Pytorchバージョンを選択する前に、互換性のあるCUDAおよびCUDNNバージョンがインストールされていることを確認してください。 Pythonバージョン:Pytorch公式支店

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。
