Ruby1.9でリファクタリングする!楽天ウェブサービスを使って商品情報を取得しよう『10日でおぼえるPython入門教室』第3日 1限目メモ

楽天ウェブサービスを使って商品情報を取得しよう『10日でおぼえるPython入門教室』第3日 1限目メモというPythonについての記事に、コメントやトラックバックをいただくことがあり見直してみると、めちゃめちゃややこしいことしてるな(笑)と思ったので、Ruby1.9で書きなおしてみました。

楽天商品検索API(XML)で「VQ1015 ENTRY」の検索結果のヒット件数と商品名を抜き取る

楽天ウェブサービスのXML

Aのヒット件数、Bの商品名を抜き取ります。

# -*- coding: utf-8 -*-
require 'open-uri'
require 'rexml/document'

rakuten_api_url = 'http://api.rakuten.co.jp/rws/3.0/rest?'
rakuten_developerid = '0123456789'
keyword='VQ1015%20ENTRY'
url = "#{rakuten_api_url}developerId=#{rakuten_developerid}&operation=ItemSearch&version=2010-06-30&keyword=#{keyword}"

doc = REXML::Document.new(open(url))
puts doc.elements['//hits'].text
doc.elements.each('//itemName') { |itemname| puts itemname.text.encode 'Shift_JIS' }
  • 「rakuten_developerId = “0123456789″」の「”0123456789″」は取得したデベロッパーIDに置き換えてください。
  • Windows環境なので、商品名をShiftJISにエンコードしています。
ファイルを実行すると、以下の検索結果のヒット件数と商品名が抜き出せます。
3
Vista Quest(ビスタクエスト) VQ1015 ENTRY トイデジカメ レッド
Vista Quest(ビスタクエスト) VQ1015 ENTRY トイデジカメ イエロー
Vista Quest(ビスタクエスト) VQ1015 ENTRY トイデジカメ ブラック

てなカンジで、Ruby1.9だとめちゃめちゃシンプルに書けますw
詳細はまた後日~w

「Ruby1.9」の関連記事