XML-RPCでソーシャルブックマークの被ブックマーク数取得 retweet

2008/08/14

XML-RPCを使ってみたくなり、任意のWebページのソーシャルブックマークの被ブックマーク数をXML-RPCで取り出すプログラムを書いてみました。

言語はRubyです。

ここでは「はてなブックマーク」と「livedoorクリップ」からブックマークされている数を取り出していますが、手続きが共通化されているので他のサービスでも簡単に同様の処理ができそうです。

はてなブックマーク件数取得API
livedoorクリップ件数取得API

尚、以下は考慮していません。

- エラー処理

- Proxyサーバ経由の接続

require 'xmlrpc/client'
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

関連情報(Google検索)