RubyでWebサイト上のPDFファイルの情報を取得するサンプルコードを作成しました。
1)pdf-readerのGemをインストール
gem install pdf-reader
2)サンプルコード作成
# -*- coding: utf-8 -*- require 'pdf/reader' require 'open-uri' io = open('http://www.example.com/sample.pdf') reader = PDF::Reader.new(io) pdf_pages="" reader.pages.each do |page| pdf_pages += page.text end result = pdf_pages.scan(/key_start(.*?)key_end/m) File.open("result.txt","w"){|file| file.puts(result[0][0]) }
3)サンプルコードの説明
①open-uriを使ってPDFファイルをオープン。
io = open(‘http://www.example.com/sample.pdf’)
②PDF::Readerインスタンス作成。
reader = PDF::Reader.new(io)
③PDFファイル内の情報を取得
PDFファイルが複数のページで構成されているので、全ページを読み出し、変数に保持。
reader.pages.each do |page|
pdf_pages += page.text
end
④scan関数で必要な情報を抽出。
HTMLファイルのようなタグが無いので、抽出する際の目印となるテキストを指定して、必要な情報を抽出します。
result = pdf_pages.scan(/key-start(.*?)key-end/m)
⑤抽出結果をファイルに保存
このサンプルでは抽出結果をテキストファイルに保存しています。
File.open(“result.txt”,”w”){|file|
file.puts(result[0][0])
}
※コピーが許可されていない設定の場合は、取得できませんでした。さらにフォントの設定なのか原因ははっきり分かりませんが、文字化けしてしまう事もありました。