RubyのNokogiriを使ったウェブスクレイピングの実装例です。ここでは例として、TOTO BIGのくじ結果のページから指定した開催回の結果を取得する手順を解説します。
## 前提条件
– Ruby 3.x 環境
– nokogiri ジェムがインストールされていること
## 実行手順
以下のスクリプトを `totobig_result.rb` というファイル名で保存します。
“`ruby
require ‘nokogiri’
require ‘open-uri’
if ARGV.empty?
abort(‘使用方法: ruby totobig_result.rb <開催回数4桁>‘)
end
hold_cnt_id = ARGV[0]
url = “https://www.toto-dream.com/dci/I/IPB/IPB02.do?op=lnkHoldCntLotResultLstBIG&holdCntId=#{hold_cnt_id}”
begin
URI.open(url) do |f|
html = Nokogiri::HTML(f)
logo = html.css(‘table.adjustment’).first
if logo
doc = logo.content
doc1 = doc.gsub(/\s+/, ”)
puts doc1
else
warn(‘指定された開催回のデータが見つかりませんでした。’)
end
end
rescue OpenURI::HTTPError => e
warn(“ネットワークエラーが発生しました: #{e.message}”)
end
“`
## 実行例
コマンドラインから4桁の開催回を指定して実行します。
“`bash
$ ruby totobig_result.rb 0666
11222220211121
“`
## コードのポイント
– `URI.open` を用いることで、セキュリティリスクを抑えながらリモートのHTMLデータを取得しています。
– `Nokogiri::HTML` でパースした後、CSSセレクタ `table.adjustment` を指定して該当するテーブル要素を抽出しています。
– 取得したテキストから不要な空白や改行文字を除去し、結果を見やすく整形しています。
この記事の更新履歴
この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。
2026年10月8日
- 変更非推奨となったopenメソッドをKernel.openからURI.openへ変更しました。
- 追加前提条件と安全上の注意、コードの解説を追加しました。
