Yahoo! APIは様々なYahoo!技術を簡単に利用できてしまうものです。
アプリケーションIDの登録をするだけでよいのでだいぶ敷居が低いと思います。
http://developer.yahoo.co.jp/
で、今回試しに使ったAPIは「キーフレーズ検索」、「画像検索」の2つです。その2つのAPIの概要の詳細はYahoo!のリンク先で。
画像検索
画像検索した結果をXMLで返してきます。
またXMLのパーサとしてBeautifulSoupを使ってます。これも検索すれば色々出てくるかと。このブログのBeautifulSoupタグも多少参考になるかも。
参考
以下2つを利用したソース
「キーフレーズ検索」YahooKeyphrase.py
#!/usr/bin/python #-*- coding: utf-8 -*- import urllib from BeautifulSoup import BeautifulSoup # サンプルリクエストURL # http://jlp.yahooapis.jp/KeyphraseService/V1/extract?appid=<アプリケーションID>&sentence=<対象テキスト> enc = "utf-8" appid = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" sentence = urllib.quote_plus("吾輩は猫である。しかし犬でもあったりする。".encode(enc)) # BeautifulSoupにXMLを食わせたインスタンスの処理 def analyzeXml(_soup): items = _soup.findAll("result") for item in items: print "Keyphrase : %s " % item.find("keyphrase").string print "Score : %s " % item.find("score").string def main(): url = "http://jlp.yahooapis.jp/KeyphraseService/V1/extract" query = "%s?appid=%s&sentence=%s" % (url, appid, sentence) xml = urllib.urlopen(query).read() soup = BeautifulSoup(xml) analyzeXml(soup) main()
「画像検索」YahooImage.py
#!/usr/bin/python #-*- coding: utf-8 -*- import urllib from BeautifulSoup import BeautifulSoup # サンプルリクエストURL # http://search.yahooapis.jp/ImageSearchService/V1/imageSearch?appid=<あなたのアプリケーションID>&query=%e6%b2%96%e7%b8%84&results=2 enc = "utf-8" # パラメタ http://developer.yahoo.co.jp/webapi/search/imagesearch/v1/imagesearch.html # appid, query, type, results, start, format, adult_ok, coloration, site appid = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" key = "椎名林檎" # BeautifulSoupにXMLを食わせたインスタンスの処理 def analyzeXml(_soup): items = _soup.findAll("result") ct = 1 for item in items: print "##############\n# Result %s\n##############" % str(ct) print "Title : %s " % item.find("title").string print "Summary : %s " % item.find("summary").string print "DisplayURL : %s " % item.find("url").string print "ClickURL : %s " % item.find("clickurl").string print "RefererURL : %s " % item.find("refererurl").string print "FileSize : %s " % item.find("filesize").string print "FileFormat : %s " % item.find("fileformat").string print "Height : %s " % item.find("height").string print "Width : %s " % item.find("width").string print "Thumbnail : %s " % item.find("thumbnail").string print "" ct += 1 def main(): url = "http://search.yahooapis.jp/ImageSearchService/V1/imageSearch" query = "%s?appid=%s&query=%s" % (url, appid, key) xml = urllib.urlopen(query).read() soup = BeautifulSoup(xml) analyzeXml(soup) main()
実行結果
* YahooKeyphrase.pyについて > $ python YahooKeyphrase.py > Keyphrase : 吾輩は猫である > Score : 100 > Keyphrase : 犬 > Score : 20 * YahooImage.pyについて > $ python YahooImage.py > ############## > # Result 1 > ############## > Title : 20070505 10943 jpg > Summary : None > DisplayURL : http://jjj55.img.jugem.jp/20070505_10943.jpg > ClickURL : http://jjj55.img.jugem.jp/20070505_10943.jpg > RefererURL : > http://sokkuri.net/alike/%E5%A0%82%E7%9C%9F%E7%90%86%E5%AD%90/%E6%A4%8E%E5%90%8D%E6%9E%9 7%E6%AA%8E > FileSize : 17.4kB > FileFormat : jpeg > Height : 352 > Width : 352 > Thumbnail : None