いちいち広告を貼り替えるのが、面倒になってきたのと、楽天とか、アマゾンには自動でコンテンツに合わせて広告を出すやつがあるけど、あまり精度が良くないので、自分で作ってみた。ヤフーのキーフレーズ解析APIを使ってキーフレーズを取り出し、キーフレーズで商品を検索して、表示させる。さっさく試してみたけど、自分でも思わずクリックしたくなる商品が出てくるヽ(´ー`)ノ
以下、キーフレーズを取り出すpytonの自作クラス。注意する点は、ヤフーのAPIはGETではなく、POSTで送らないとなぜか頻繁にエラーが出る点。最初これがわからず半泣きになった。
keytx ここにテキストを入れる
numnum 取り出すキーフレーズの数、2個がちょうどいい感じ。
dekey エラーが出た場合に使うデフォルトのキーワード
あとはappidを入れる
[python]
#coding:utf-8
from xml.etree.ElementTree import XML, ElementTree, Element
import urllib
import urllib2
class Keywordx2:
def __init__(self,keytx,numnum,dekey):
try:
self.keytx = keytx
self.numnum = numnum
self.dekey = dekey
except:
self.keytx = dekey
self.numnum = numnum
self.dekey = dekey
def key_search(self):
try:
query_kkk = { ‘appid’:”, ‘sentence’:self.keytx }
url2 = “http://jlp.yahooapis.jp/KeyphraseService/V1/extract”
encoded_ppp = urllib.urlencode(query_kkk)
xml = ElementTree(file=urllib2.urlopen(url2, encoded_ppp))
dom = xml.getroot()
namespace_url = ‘urn:yahoo:jp:jlp:KeyphraseService’
namespace = ‘{‘ + namespace_url + ‘}’
keylist = dom.getiterator(namespace+’Keyphrase’)
a=””
if len(keylist) <= self.numnum:
for i in range(len(keylist)):
a += keylist[i].text.encode('utf-8')+","
else:
for i in range(self.numnum):
a += keylist[i].text.encode('utf-8')+","
return a
except:
return self.dekey
[/python]