はてなAPIを使用して連想キーワードを取得する

2015年4月3日

python-logo-master-v3-TM

はてなキーワード連想語APIを使用して、文章の中に組み込むためのキーワードを取得してみるスクリプトです。概要としては一旦外部にtxtファイルで保存しUnicodeエスケープ問題を回避しています。もっとシンプルに書けるかもしれませんがとりあえず。

ブログを書いたり、サイトを制作するときなど何かしら便利に使えるアイデアがあるかもしれません。

#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
import xmlrpclib
import sys, codecs
sys.stdin  = codecs.getreader("utf-8")(sys.stdin)
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)

get_input = raw_input("prease keywords: ")

server = xmlrpclib.ServerProxy("http://d.hatena.ne.jp/xmlrpc")
res = server.hatena.getSimilarWord({"wordlist": get_input})


f = open("hatena.txt" , "aw")
lists = res["wordlist"]

for x in lists:
	f.write(str(x) + "\n")
	f.close


f = open("hatena.txt","rb")
data = f.read()
f.close()
print data.decode("unicode-escape")

raw_inputを使用しているのでターミナルで動かした場合は任意のキーワードを入力可能です。
hatena.txtをスクリプトファイルと同じ階層に自動的に生成します。


f = open("hatena.txt" , "aw")
lists = res["wordlist"]

for x in lists:
	f.write(str(x) + "\n")
	f.close


f = open("hatena.txt","rb")
data = f.read()
f.close()
print data.decode("unicode-escape")

この部分でUnicodeエスケープ問題 u”\u36043\u3302 のようなことを外部ファイルに一旦保存してからデコードしてファイルを読み出すことで解消しています。ターミナルから使用する場合は二度目以降は自動生成されたhatena.txtを削除しておかないと重複してしまいますので注意。

主な著書

Django

Flask

Bottle