1

このトピックに関するスレッドがいくつかあることは知っていますが、それらの解決策はどれもうまくいかないようです。PDF ドキュメントに表があり、そこから情報を抽出できるようにしたいと考えています。テキストをコピーして textedit に貼り付けることができます。読みやすいですが、実際には使用できません。これは、すべてのテキストが読み取り可能であることを意味しますが、データはすべてスペースで区切られており、セル内のテキスト内のスペースと列を区別する方法はありません。

しかし、タブラやスクレーパー wiki などのツールを使用しようとすると、抽出されたテキストはゴミになります。

これについてどうすればよいかについて、誰かが私に何か指針を与えることができますか?

4

2 に答える 2

0

PythonとUnixを使用したソリューションは次のとおりです

Python の場合:

import urllib
# download pdf
testfile = urllib.URLopener()
testfile.retrieve('http://www.european-athletics.org/mm/Document/EventsMeetings/General/01/27/52/10/EICH-FinalEntriesforwebsite_Neutral.pdf', 'test.pdf')

Unix の場合:

$ pdftotext -layout test.pdf

test.txt への出力のスニペット:

Lastname Firstname Country DOB PB SB 1500m Men Rowe Brenton AUT 17/08/1987 Vojta Andreas AUT 09/06/1989 3:38.99 3:41.09 Khadiri Amine CYP 20/11/1988 3:45.16 3:45.16 Friš Jan CZE 19/12/1995 3:43.76 3:43.76 Holuša Jakub CZE 20/02/1988 3:38.79 3:41.54 Kocourek Milan CZE 06/12/1987 3:43.97 3:43.97 Bueno Andreas DEN 07/07/1988 3:42.78 3:42.78 Alcalá Marc ESP 07/11/1994 3:41.79 3:41.79 Mechaal Adel ESP 05/12/1990 3:38.30 3:38.30 Olmedo Manuel ESP 17/05/1983 3:39.82 3:40.66 Ruíz Diego ESP 05/02/1982 3:36.42 3:40.60 Kowal Yoann FRA 28/05/1987 3:38.07 3:39.22 Grice Charlie GBR 07/11/1993 3:39.44 3:39.44 O'Hare Chris GBR 23/11/1990 3:37.25 3:40.42 Orth Florian GER 24/07/1989 3:39.97 3:40.20 Tesfaye Homiyu GER 23/06/1993 3:34.13 3:34.13 Kazi Tamás HUN 16/05/1985 3:44.28 3:44.28 Mooney Danny IRL 20/06/1988 3:42.69 3:42.69 Travers John IRL 16/03/1991 3:42.52 3:43.74 Bussotti Neves Junior Joao Capistrano M. ITA 10/05/1993 3:47.58 3:47.58 Jurkēvičs Dmitrijs LAT 07/01/1987 3:45.95 3:45.95 Ingebrigtsen Henrik NOR 24/02/1991 3:44.00 Ingebrigtsen Filip NOR 20/04/1993 Krawczyk Szymon POL 29/12/1988 3:41.64 3:41.64 Ostrowski Artur POL 10/07/1988 3:41.36 3:41.36 ebrowski Krzysztof POL 09/07/1990 3:41.49 3:41.49 Smirnov Valentin RUS 13/02/1986 3:37.55 3:38.74 Nava Goran SRB 15/04/1981 3:40.65 3:44.49 Pelikán Jozef SVK 29/07/1984 3:43.85 3:45.51 Ek Staffan SWE 13/11/1991 3:43.54 3:43.54 Rogestedt Johan SWE 27/01/1993 3:40.03 3:40.03 Özbilen lham Tanui TUR 05/03/1990 3:34.76 3:38.05 Özdemir Ramazan TUR 06/07/1991 3:44.35 3:44.35

于 2015-03-03T15:50:56.370 に答える
0

リンク先の PDF ファイルを処理するための簡単なコマンド ライン ツールをダウンロードすることもできます。次のコマンドを実行して、最初のページでテーブルを抽出します。

pdftotext     \
   -enc UTF-8 \
   -l 1       \
   -table     \
    EICH-FinalEntriesforwebsite_Neutral.pdf \
    EICH-FinalEntriesforwebsite_Neutral.txt
  • -enc UTF-8: テキストの Ö、Ä、Ü、İ (および ö、ä、ü、ß、á、š、ē、í、č) の文字が正しく抽出されるように、テキスト エンコーディングを設定します。
  • -l 1: 最後のページとしてページ番号 1 を抽出するようコマンドに指示します。
  • -table: これは決定的なパラメーターです。

このコマンドは、次の出力を生成します。

EUROPEAN ATHLETICS INDOOR CHAMPIONSHIPS PRAGUE / CZE, 6-8 MARCH 2015 FINAL ENTRIES - MEN Lastname Firstname Country DOB PB SB 1500m Men Rowe Brenton AUT 17/08/1987 Vojta Andreas AUT 09/06/1989 3:38.99 3:41.09 Khadiri Amine CYP 20/11/1988 3:45.16 3:45.16 Friš Jan CZE 19/12/1995 3:43.76 3:43.76 Holuša Jakub CZE 20/02/1988 3:38.79 3:41.54 Kocourek Milan CZE 06/12/1987 3:43.97 3:43.97 Bueno Andreas DEN 07/07/1988 3:42.78 3:42.78 Alcalá Marc ESP 07/11/1994 3:41.79 3:41.79 Mechaal Adel ESP 05/12/1990 3:38.30 3:38.30 Olmedo Manuel ESP 17/05/1983 3:39.82 3:40.66 Ruíz Diego ESP 05/02/1982 3:36.42 3:40.60 Kowal Yoann FRA 28/05/1987 3:38.07 3:39.22 Grice Charlie GBR 07/11/1993 3:39.44 3:39.44 O'Hare Chris GBR 23/11/1990 3:37.25 3:40.42 Orth Florian GER 24/07/1989 3:39.97 3:40.20 Tesfaye Homiyu GER 23/06/1993 3:34.13 3:34.13 Kazi Tamás HUN 16/05/1985 3:44.28 3:44.28 Mooney Danny IRL 20/06/1988 3:42.69 3:42.69 Travers John IRL 16/03/1991 3:42.52 3:43.74 Bussotti Neves Junior Joao Capistrano M. ITA 10/05/1993 3:47.58 3:47.58 Jurkēvičs Dmitrijs LAT 07/01/1987 3:45.95 3:45.95 Ingebrigtsen Henrik NOR 24/02/1991 3:44.00 Ingebrigtsen Filip NOR 20/04/1993 Krawczyk Szymon POL 29/12/1988 3:41.64 3:41.64 Ostrowski Artur POL 10/07/1988 3:41.36 3:41.36 Żebrowski Krzysztof POL 09/07/1990 3:41.49 3:41.49 Smirnov Valentin RUS 13/02/1986 3:37.55 3:38.74 Nava Goran SRB 15/04/1981 3:40.65 3:44.49 Pelikán Jozef SVK 29/07/1984 3:43.85 3:45.51 Ek Staffan SWE 13/11/1991 3:43.54 3:43.54 Rogestedt Johan SWE 27/01/1993 3:40.03 3:40.03 Özbilen İlham Tanui TUR 05/03/1990 3:34.76 3:38.05 Özdemir Ramazan TUR 06/07/1991 3:44.35 3:44.35 3000m Men Rowe Brenton AUT 17/08/1987 Vojta Andreas AUT 09/06/1989 7:59.95 7:59.95

ただし、次の点に注意してください。

pdftotextコマンド ライン ツールの-tableパラメーターは、XPDF バージョン 3.04 でのみ使用できます。これは、 www.foolabs.com /xpdf/download.html からダウンロードできます。Poppler のpdftotextのフォーク(最新バージョンは 0.43.0) では(まだ) 利用できません。

Poppler のpdftotextしかない場合は、 -layout(の代わりに) パラメータを使用する必要があり-tableます。これにより、問題の PDF ファイルに対して同様に良い結果が得られます。

pdftotext     \
   -enc UTF-8 \
   -l 1       \
   -layout    \
    EICH-FinalEntriesforwebsite_Neutral.pdf \
    EICH-FinalEntriesforwebsite_Neutral.txt

ただし、結果が(および Poppler -table) よりも (および XPDF) の方がはるかに優れている PDF を見てきまし-layoutた。

(XPDFには、-layoutパラメーターも同様です -- 両方を試すと違いがわかります。)

于 2016-05-01T17:20:36.073 に答える