Rubyプログラミング

「HTMLに埋め込まれたJSONデータをparseで取得する方法をRubyのプログラムを使って説明します。

下記のサンプルデータとサンプルプログラムを用いて説明します。

サンプルデータ

JSONデータが埋め込まれたHTMLファイル「sample.html」


  

Parse Test

sample.htmlに埋め込まれたJSONデータは以下の通りです。

{"name": "hoge", "address": "神奈川県"}

プログラムの流れ

sample.htmlからJSONデータを取得するrubyのプログラの流れは以下の通りです。

  1. サイト(sample.html)へアクセス
  2. scriptタグの情報を抽出
  3. 正規表現を用いてJSON形式の文字列を抽出
  4. JSONオブジェクトへ格納
  5. JSONオブジェクトへのアクセス

サンプルプログラム

下記のgetJson.rbは、上記の流れに沿って記述したプログラムです。

require "mechanize"

## 1. サイト(sample.html)へアクセス
agent = Mechanize.new
page  = agent.get("sample.html")

## 2. scriptタグの情報を抽出
scriptTag = page.at("//script")

## 3. 正規表現を用いてJSON形式の文字列を抽出
jsonDataStr = (/\{.*\}/.match(scriptTag)[0])

## 4. JSONオブジェクトへ格納
jsonData = JSON.parse(jsonDataStr)

## 5. JSONオブジェクトへのアクセス
puts jsonData["name"]
puts jsonData["address"]

上記のgetJson.rbを実行することによって、sample.htmlに埋め込まれたJSONデータを取得することができます

実行方法は、以下になります。

$ ruby getJson.rb

実行結果

実行結果は、次のようになります。

hoge
神奈川県

まとめ

以上、rubyを利用して、HTMLに埋め込まれたJSONデータを数行のコードで簡単に取得することができました。