2008/08/14
XML-RPCを使ってみたくなり、任意のWebページのソーシャルブックマークの被ブックマーク数をXML-RPCで取り出すプログラムを書いてみました。言語はRubyです。
ここでは「はてなブックマーク」と「livedoorクリップ」からブックマークされている数を取り出していますが、手続きが共通化されているので他のサービスでも簡単に同様の処理ができそうです。
はてなブックマーク件数取得API
livedoorクリップ件数取得API
尚、以下は考慮していません。
- エラー処理
- Proxyサーバ経由の接続
#!/usr/local/bin/ruby require 'xmlrpc/client' # # ブックマークサービス定義 # - はてなブックマーク # - livedoorクリップ # services = { 'hatena_bookmark' => 'http://b.hatena.ne.jp/xmlrpc', 'livedoor_clip' => 'http://rpc.clip.livedoor.com/count', } methods = { 'hatena_bookmark' => 'bookmark.getCount', 'livedoor_clip' => 'clip.getCount', } # # 被ブックマーク調査ページ定義 # targets = [ 'http://www.apple.com/jp/', 'http://www.google.co.jp/', 'http://b.hatena.ne.jp/', ] # # ブックマーク数調査 # services.each {|serv, uri| # ブックマークサービス毎処理 client = XMLRPC::Client.new2(uri) method = methods["#{serv}"] puts "<#{serv}>" targets.each {|target| # 被ブックマーク調査ページ毎処理 result = client.call(method, target) num = result["#{target}"] puts "#{target} => " + num.to_s } puts }
(実行結果)
<hatena_bookmark> http://www.apple.com/jp/ => 694 http://www.google.co.jp/ => 1982 http://b.hatena.ne.jp/ => 1721 <livedoor_clip> http://www.apple.com/jp/ => 71 http://www.google.co.jp/ => 260 http://b.hatena.ne.jp/ => 152