xmlrpclib
xmlrpclibを使ってみます。
基本的にはこれだけです。簡単ですね。以下ははてなの公開APIを使った例です。
import xmlrpclib s = xmlrpclib.ServerProxy('http://d.hatena.ne.jp/xmlrpc') r = s.hatena.getSimilarWord({'wordlist': ['Hatena', 'Python']}) print ', '.join(w['word'] for w in r['wordlist'])
実行結果
ReportLab, はてな伝説, ISBN:, 言語, アプリ, :detail, モジュール, VM, ビルド, Nokia, 付属, シンプル, Guido van Rossum, ...
再帰的にゲット(数が多くなるので最大でも10個ずつに限定)
# getword.py import sys import xmlrpclib def get(s, w, n, p=''): for i in s.hatena.getSimilarWord({'wordlist': w})['wordlist'][:10]: print p+i['word'].encode('euc-jp') if n: get(s, i['word'], n-1, p+'-') s = xmlrpclib.ServerProxy('http://d.hatena.ne.jp/xmlrpc') get(s, sys.argv[2:], int(sys.argv[1]))
実行例
> python getword.py 2 hatena apple GUI -MacOS --はてなダイアリーFAQ「その他のFAQ」 --2000年 --マルチタスク --NeXT --業界 --パーソナルコンピューター --Mac --リリース --クリエイター --Apple社 -1984年 --柴田あゆみ --Apple --Macintosh --6月13日 --金田美香 --10月7日 --ひまわり --水泳 --1949年 --3月29日 ...
# -*- coding: euc-jp -*- import xmlrpclib s = xmlrpclib.ServerProxy('http://d.hatena.ne.jp/xmlrpc') r = s.hatena.setKeywordLink({'body': 'はてなダイアリーのキーワードをリンクして!', 'score': 20, 'cname': ['book', 'movie'], 'a_target': '_blank', 'a_class': 'keyword'}) print r.encode('euc-jp')
実行結果
はてなダイアリーの<a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%a5%ad%a1%bc%a5%ef%a1%bc%a5%c9">キーワード</a>をリンクして!
はてなダイアリーキーワード連想語APIで取得したキーワードをはてなダイアリーキーワード自動リンクAPIでリンクする(全カテゴリのキーワードをリンクするためにcnameを省略)
# getword_setlink.py import sys import xmlrpclib s = xmlrpclib.ServerProxy('http://d.hatena.ne.jp/xmlrpc') for w in s.hatena.getSimilarWord({'wordlist': sys.argv[1:]})['wordlist']: print s.hatena.setKeywordLink({'body': w['word'].encode('euc-jp'), 'a_target': '_blank', 'a_class': 'keyword'}).encode('euc-jp')
実行例
> python getword_setlink.py りんご <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%c5%a3%b5%dc%cd%fd%b7%c3">釘宮理恵</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%a5%ea%a5%f3%a5%b4">リンゴ</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/TOWER%20RECORDS">TOWER RECORDS</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/HIPHOP">HIPHOP</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%a5%ec%a5%d3%a5%e5%a1%bc">レビュー</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/2004%c7%af">2004年</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%a5%a2%a5%eb%a5%d0%a5%e0">アルバム</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/ken">ken</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%c8%af%c9%bd">発表</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/bounce">bounce</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%a5%c0%a5%e1%a5%ec%a5%b3">ダメレコ</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/MC">MC</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/Da%2eMe%2eRecords">Da.Me.Records</a> <a class="keyword" target="_blank" href="http://d.hatena.ne.jp/keyword/%a5%ec%a1%bc%a5%d9%a5%eb">レーベル</a>
気がついたことなど