http://nanatsuiro.side2.net/kakaku/
つくったー。
発端
価格.com WEBサービスって色々面白いことできそうだよなー、というか自分の必要な商品の価格情報だけ持ってきて表示すりゃ便利だよなってことで、普段あまり触らないrubyなどを使ってみた。
機能
1時間に1回ぐらいAPIからデータ持ってきて表が更新されます。
DDR2に比べてDDR1がいかに高いかとか、microSDで一番お得っぽいのはどれかとか、そういうのがわかります。
イメージとしてはAKIBA PC Hotline!の最安値情報ページみたいな感じ。向こうにのってる載ってるやつはこっちと比較すればいいし、DDR1みたいに載らなくなっちゃったやつはこっち見ればいいかなと。
中身
超適当ですが多分一番核になるのはこのへん。
def put_product(productid,capacity) # kakaku.com APIから個別データ読み込み xmluri = "http://api.kakaku.com/Ver1/iteminfo.ashx?ProductID=" + productid + "&ResultSet=Mini" source = "" open(xmluri){|io| source << io.read } # XMLパーサに読ます xmldoc = REXML::Document.new source # XMLから情報取得&容量単価計算 productmaker = xmldoc.elements['/ProductInfo/Item/MakerName'].text productname = xmldoc.elements['/ProductInfo/Item/ProductName'].text producturi = xmldoc.elements['/ProductInfo/Item/ItemPageUrl'].text price = xmldoc.elements['/ProductInfo/Item/LowestPrice'].text.to_i byteprice = price.to_f / capacity # result_prに出力 result_pr = %Q{<tr><td class="productname">} + productmaker + %Q{ <a href="#{producturi}">} + productname + "</a></td>" result_pr << %Q{<td class="capacity">} + "#{capacity}Gbyte</td>" result_pr << %Q{<td class="lowestprice">#{price}円</td>} result_pr << %Q{<td class="byteprice">} + sprintf("%.2f",byteprice) + "円</td></tr>\n" return result_pr end
productidには価格.comの商品ID(URLの末尾んとこ)、capacityにはその商品の容量を入れます。するとput_productがtableの1行を吐いてくれるという。あら簡単。