こんにちは、河野です。
はてなブックマークの合計数を取得するワンライナーです。下準備がいるのですが、コマンド自体は1行なのでワンライナーと言い張ってみます。
はてブの件数取得API
TwitterやFacebook同様にAPIを使用します。詳細は、はてなブックマーク件数取得API - Hatena Developer Centerに書いてあります。
この中に、被ブックマーク合計数取得APIがあるので、それを使用します。
最初に調べたときは、XMLPRCということでちょっと抵抗がありましたが、送信するデータも固定で、レスポンスのデータも簡単な構造なので、やってみたら簡単にできました。
XMLを準備する
ドキュメントに従って、リクエストのためのXMLを準備します。サンプルをコピペして、TechscoreBlogのURLに変更してみました。
1 2 3 4 5 6 7 8 9 |
<?xml version="1.0"?> <methodCall> <methodName>bookmark.getTotalCount</methodName> <params> <param> <value><string>http://www.techscore.com/blog/</string></value> </param> </params> </methodCall> |
とりあえずhb.xmlという名称で保存してみました。
curlでAPI呼び出し
先ほど準備したXMLを使用してAPIを呼び出してみます。
curl には --data オプションがあり、指定したファイルを送信(POST)することができます。@を使用してファイル名を指定します。こんな感じです。
curl -s --data @hb.xml http://b.hatena.ne.jp/xmlrpc
このリクエストを送信すると、合計件数を記載しているXMLデータが返ってきます。
1 2 |
$ curl -s --data @hb.xml "http://b.hatena.ne.jp/xmlrpc" <?xml version="1.0" encoding="us-ascii"?><methodResponse><params><param><value><int>39</int></value></param></params></methodResponse> |
intタグで囲まれた部分が合計の被ブックマーク数ということになります。今回はsedでこの数字を抽出してみたいと思います。
1 2 |
$ curl -s --data @hb.xml "http://b.hatena.ne.jp/xmlrpc" | sed -r -e 's@^.+<int>(.+)</int>.+$@\1@' 39 |
できました~!