お世話になります。
エクセルをベースにしたような規則的なpdfファイルがあるのですが、
うまくデータを自動的に取得する方法はあるかアドバイスをいただきたく存じます。
上記のリンクは全国銀行協会で毎営業日自動的に更新されているのですが
例えば2018/3/2に2018/3/1の値を取得したいと考えております。
pdfをHTML化するツールを使用してphpでpreg_match等をする方法も
検討したのですが、どうしてもhtmlが崩れてしまい、適切に取得することが
保障されません。
一方で、クリップボードにコピーする場合には綺麗に取得することができるので
データ自体は取得することが可能かと考えているのですが、「pdf php スクレイピング」等
で検索しても良いものが出てこないため、何か良いアイデアがあればご教示頂ければ
幸いです。
宜しくお願い申し上げます。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
PHP/PDF/OCR かなキーワードとしては
投稿2018/03/15 00:56
退会済みユーザー
総合スコア0
0
PDF自体は仕様が公開されているファイル形式ですので、PDFを読み書きするためのライブラリも様々な物が公開されています。ただし、PDFは印刷出力を前提としたファイル形式ですので、表等の論理構造に従って正規化したデータとして取り出すような処理は苦手です。
クリップボードにテキストとして出力した場合には問題ないのであれば、PDF2TEXT等のツールを用いて、書式情報を含まない形で変換してはどうでしょう?
投稿2018/03/15 01:13
総合スコア472
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
pdftoxmlで出力した一部分です。
xml
1 2-<TEXT id="p1_t6" height="11.029" width="55.2" y="112.676" x="45.4703"> 3 4<TOKEN id="p1_w34" height="11.029" width="55.2" y="112.676" x="45.4703" base="122.16" angle="0" rotation="0" font-color="#000000" font-size="11.04" italic="no" bold="no" fixed-width="yes" serif="yes" font-name="ms" sid="p1_s52">2018/03/14</TOKEN> 5 6</TEXT> 7 8 9-<TEXT id="p1_t7" height="11.029" width="35.3611" y="112.676" x="118.67"> 10 11<TOKEN id="p1_w35" height="11.029" width="35.3611" y="112.676" x="118.67" base="122.16" angle="0" rotation="0" font-color="#000000" font-size="11.04" italic="no" bold="no" fixed-width="yes" serif="yes" font-name="ms" sid="p1_s53">0.00364</TOKEN> 12 13</TEXT> 14 15 16-<TEXT id="p1_t8" height="11.029" width="35.3611" y="112.676" x="171.708"> 17 18<TOKEN id="p1_w36" height="11.029" width="35.3611" y="112.676" x="171.708" base="122.16" angle="0" rotation="0" font-color="#000000" font-size="11.04" italic="no" bold="no" fixed-width="yes" serif="yes" font-name="ms" sid="p1_s54">0.05545</TOKEN> 19 20</TEXT> 21 22 23-<TEXT id="p1_t9" height="11.029" width="35.3611" y="112.676" x="224.747"> 24 25<TOKEN id="p1_w37" height="11.029" width="35.3611" y="112.676" x="224.747" base="122.16" angle="0" rotation="0" font-color="#000000" font-size="11.04" italic="no" bold="no" fixed-width="yes" serif="yes" font-name="ms" sid="p1_s55">0.04818</TOKEN> 26 27</TEXT> 28 29 30-<TEXT id="p1_t10" height="11.029" width="35.3611" y="112.676" x="277.785"> 31 32<TOKEN id="p1_w38" height="11.029" width="35.3611" y="112.676" x="277.785" base="122.16" angle="0" rotation="0" font-color="#000000" font-size="11.04" italic="no" bold="no" fixed-width="yes" serif="yes" font-name="ms" sid="p1_s56">0.06909</TOKEN> 33 34</TEXT> 35 36 37-<TEXT id="p1_t11" height="11.029" width="35.3611" y="112.676" x="436.903"> 38 39<TOKEN id="p1_w39" height="11.029" width="35.3611" y="112.676" x="436.903" base="122.16" angle="0" rotation="0" font-color="#000000" font-size="11.04" italic="no" bold="no" fixed-width="yes" serif="yes" font-name="ms" sid="p1_s57">0.12636</TOKEN> 40 41</TEXT> 42 43 44-<TEXT id="p1_t12" height="11.029" width="35.3611" y="112.676" x="755.142"> 45 46<TOKEN id="p1_w40" height="11.029" width="35.3611" y="112.676" x="755.142" base="122.16" angle="0" rotation="0" font-color="#000000" font-size="11.04" italic="no" bold="no" fixed-width="yes" serif="yes" font-name="ms" sid="p1_s58">0.13636</TOKEN> 47 48</TEXT> 49
エレメントの属性値で座標とベースラインが取れるので、パースできそうです。
投稿2018/03/16 04:48
総合スコア910
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/16 12:51
2018/03/16 12:56
2018/03/17 07:06
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/15 03:17