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])
}
 
※コピーが許可されていない設定の場合は、取得できませんでした。さらにフォントの設定なのか原因ははっきり分かりませんが、文字化けしてしまう事もありました。
- CentOSにcurb(ruby)をインストールする手順
- Windows7にcurb(ruby)をインストールする手順
- Windows7の環境でRubyでMySQLに接続する手順
- Ruby curbでリファラーとユーザーエージェントを設定してWebページを取得
- Windows7でruby2、open-uriを使ってWebページを取得
- Ruby open-uriでリファラーとユーザーエージェントを設定してWebページを取得
- Ruby curb、scan、gsubを使ってWebページから特定の情報を抽出
- RubyでWebサイト上のPDFファイルの情報を取得
- RubyでWebサイト上のエクセルファイルの情報を取得
- Rubyで既存のエクセルファイルにデータを追加
- RubyでWebページの応答時間を計測し、メールで通知
- Ruby curbでPOSTデータ送信
- curbでRailsアプリのクッキー、セッションIDを取得し、ログイン
- Ruby mysql2でSQLインジェクション対策
- Ruby mysql2でデータをテーブルに登録