或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

AmazonランキングのRSSをRubyで読み込んで出力 #Ruby

最近、クローリング/スクレイピング/スパイダリングにはまっています。

Amazonのランキングを出力したいなと思いました。

やり方はいろいろあるのだけれども、、、
例えばAmazonのランキングのページのhtmlを解析して、必要な情報だけ抜き取るとかね。
このやり方の良いところは、ページに表示されているものならすべて扱えるところですかね。

他にもRSSを読み込んで出力するという方法があります。RSSはフォーマッティングされた綺麗な形式なので、情報の抜きだしは簡単。その代わり、配信されていない情報はどうにもこうにも出来ません。

ということで、扱いたい情報がRSSで事足りるならRSS,足りないならページを地道にスクレイピングするのが良いのかなと。

試しに

Amazon.co.jp: 本 > 文学・評論のベストセラー

RSSを読み込んでみることにした。

サンプルコード

require 'rss'
 
filename = 'http://www.amazon.co.jp/gp/rss/bestsellers/books/466284/'
rss = RSS::Parser.parse(filename)
rss.items.each{|item|
  puts item.title
  puts item.link
  puts
}

実行結果

$ruby amazonranking.rb
#1: エゴの力 (幻冬舎新書)
http://www.amazon.co.jp/%E3%82%A8%E3%82%B4%E3%81%AE%E5%8A%9B-%E5%B9%BB%E5%86%AC%E8%88%8E%E6%96%B0%E6%9B%B8-%E7%9F%B3%E5%8E%9F-%E6%85%8E%E5%A4%AA%E9%83%8E/dp/4344983637/ref=pd_zg_rss_ts_b_466284_1

#2: ソロモンの偽証: 第III部 法廷 下巻 (新潮文庫)
http://www.amazon.co.jp/%E3%82%BD%E3%83%AD%E3%83%A2%E3%83%B3%E3%81%AE%E5%81%BD%E8%A8%BC-%E7%AC%ACIII%E9%83%A8-%E6%B3%95%E5%BB%B7-%E4%B8%8B%E5%B7%BB-%E6%96%B0%E6%BD%AE%E6%96%87%E5%BA%AB/dp/4101369402/ref=pd_zg_rss_ts_b_466284_2

#3: ソロモンの偽証: 第III部 法廷 上巻 (新潮文庫)
http://www.amazon.co.jp/%E3%82%BD%E3%83%AD%E3%83%A2%E3%83%B3%E3%81%AE%E5%81%BD%E8%A8%BC-%E7%AC%ACIII%E9%83%A8-%E6%B3%95%E5%BB%B7-%E4%B8%8A%E5%B7%BB-%E6%96%B0%E6%BD%AE%E6%96%87%E5%BA%AB/dp/4101369399/ref=pd_zg_rss_ts_b_466284_3

#4: Nのために (双葉文庫)
http://www.amazon.co.jp/N%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AB-%E5%8F%8C%E8%91%89%E6%96%87%E5%BA%AB-%E6%B9%8A-%E3%81%8B%E3%81%AA%E3%81%88/dp/4575517046/ref=pd_zg_rss_ts_b_466284_4

#5: 天国までの百マイル
http://www.amazon.co.jp/%E5%A4%A9%E5%9B%BD%E3%81%BE%E3%81%A7%E3%81%AE%E7%99%BE%E3%83%9E%E3%82%A4%E3%83%AB-%E6%B5%85%E7%94%B0%E6%AC%A1%E9%83%8E-ebook/dp/B00JUJXVGM/ref=pd_zg_rss_ts_b_466284_5

#6: 京大芸人式日本史
http://www.amazon.co.jp/%E4%BA%AC%E5%A4%A7%E8%8A%B8%E4%BA%BA%E5%BC%8F%E6%97%A5%E6%9C%AC%E5%8F%B2-%E8%8F%85-%E5%BA%83%E6%96%87/dp/4344026616/ref=pd_zg_rss_ts_b_466284_6

#7: 点と線
http://www.amazon.co.jp/%E7%82%B9%E3%81%A8%E7%B7%9A-%E6%9D%BE%E6%9C%AC-%E6%B8%85%E5%BC%B5-ebook/dp/B009HO5F0A/ref=pd_zg_rss_ts_b_466284_7

#8: アフタヌーン 2014年12月号 [2014年10月25日発売] [雑誌]
http://www.amazon.co.jp/%E3%82%A2%E3%83%95%E3%82%BF%E3%83%8C%E3%83%BC%E3%83%B3-2014%E5%B9%B412%E6%9C%88%E5%8F%B7-2014%E5%B9%B410%E6%9C%8825%E6%97%A5%E7%99%BA%E5%A3%B2-%E9%9B%91%E8%AA%8C-%E3%82%A2%E3%83%95%E3%82%BF%E3%83%8C%E3%83%BC%E3%83%B3%E7%B7%A8%E9%9B%86%E9%83%A8-ebook/dp/B00OC2FCUU/ref=pd_zg_rss_ts_b_466284_8

#9: レインツリーの国 (新潮文庫)
http://www.amazon.co.jp/%E3%83%AC%E3%82%A4%E3%83%B3%E3%83%84%E3%83%AA%E3%83%BC%E3%81%AE%E5%9B%BD-%E6%96%B0%E6%BD%AE%E6%96%87%E5%BA%AB-%E6%9C%89%E5%B7%9D-%E6%B5%A9/dp/4101276315/ref=pd_zg_rss_ts_b_466284_9

#10: 【Amazon.co.jp限定】she & sea 海上の覇者と愚者 ショートストーリーペーパー付
http://www.amazon.co.jp/%E3%80%90Amazon-co-jp%E9%99%90%E5%AE%9A%E3%80%91she-sea-%E6%B5%B7%E4%B8%8A%E3%81%AE%E8%A6%87%E8%80%85%E3%81%A8%E6%84%9A%E8%80%85-%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AA%E3%83%BC%E3%83%9A%E3%83%BC%E3%83%91%E3%83%BC%E4%BB%98-%E7%B3%B8%E6%A3%AE/dp/4041022576/ref=pd_zg_rss_ts_b_466284_10

簡単ですね!

応用も出来そう。

こういうことに興味をお持ちならこちらの書籍もどうぞ

Spidering hacks―ウェブ情報ラクラク取得テクニック101選

Spidering hacks―ウェブ情報ラクラク取得テクニック101選

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例