Hatena::ブログ(Diary)

Ryoの開発日記 RSSフィード

"bitcoin:1PdaRuCYRCtxHpRowuSQDjCNe6Won7J8kk"



個人サイト( ryogrid.net )|| プロフィール || 業績等
大学時代の研究 || ddkの日記 || tyouiifanの日記 || Yoshikuniの日記
あなくつと愉快なソフトウェアたち|| CLKs
Ceekz Logs||RyoのFacebook||Ryoのmixi|| 登 大遊@筑波大学情報学類の SoftEtherVPN日記
はてなブックマークをマッシュアップした情報推薦サービス
TOFU-G||高校時代の活動|| 分散マシン操作ライブラリ Svengali
Linkedin|| Google+|| ひらめいったー
Ryoのつぶやき ||Ryoに響いた言葉 ||Ryoの本棚 ||スマホでキャッチボールのキャチボ
qiita||github|| 顔面偏差値スカウター||機械学習でFXシステムトレード

2006-08-09 またーり

Kikker WebAPIを強化

いくつかAPIを足したり、既存のやつで得られる情報を増やしました。

というのも、KikkerをRails移植する(エンジンは今まで通りJavaViewだけRails)にあたって、自分も適切なAPIがないとどうしようもないわけですよ。


まず、すでにあった

http://d.hatena.ne.jp/kanbayashi/20060714#p2

APIタグ情報カテゴリ,クロール日時も得られるようにしました。


あと、APIを2つ足しました

require 'xmlrpc/client'
require 'kconv'

client = XMLRPC::Client.new3(:host => 'ryogrid.myhome.cx',:port => 7777)
#検索するドキュメントのタイプ 2=はてブ 3=CEEK.JP NEWS 4=Youtube 他=だめぽ
doc_type = 2

#ドキュメントのタイプと検索したいキーワードを与えてコール
rpc_result = client.call 'KikkerWebAPI.searchByKeyword',doc_type,"web"

#ドキュメントのタイトル,url,クロールされた日にち,カテゴリ,タグとそれに対応する強さの値の順に出力
rpc_result["titles"].each_index{|index|
  print rpc_result["titles"][index].tosjis + " : " + rpc_result["urls"][index] + " : " + rpc_result["crawled_dates"][index].to_s + " : " +  rpc_result["categories"][index].tosjis +  "\r\n"
  rpc_result["tags"][index].each{|each_keyword| 
    print each_keyword[0].tosjis + "=" + each_keyword[1].to_s + ","
  }
  print "\r\n"
}


結果は

Yeti PaPa 】 ? 機種依存文字について : http://www.yetipapa.com/support/denial_code.html : 2006-08-09 : 一般
bx=39830.927976,bw=37276.317099,bv=34721.706222,bu=32167.095345,bz=9864.350118,webmaster=1153.017069,ld=1151.7663075,web=1150.8398175,reserved=1150.0059765,rights=1149.959652,

ゲームブックの作り方 @Wiki - トップ : http://www11.atwiki.jp/finalquest/ : 2006-08-09 : ウェブ
web=10.0,ゲーム=10.0,無駄=1.0,アイデア=1.0,ゲームブック=1.0,技術=1.0,@wiki=1.0,

アイコン-Icon-INDEX : http://www9.pobox.ne.jp/~neon/icon/icon_index.html : 2006-08-09 : コンピュータ
web=10.0,素材=10.0,index=1.0,アイコン=1.0,存在=1.0,メール=1.0,ボタン=1.0,
WS-I Sample Application Blog Series: Web Service Implementation Strategy : https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/4150 : 2006-08-09 : ウェブ
sap=10.0,sdn=10.0,ws-i=10.0,web=1.0,ws=1.0,strategy=1.0,blog=1.0,

となります。


詳細↓

サービス名=KikkerWebAPI

メソッド名=searchByKeyword

できる事=キーワードに関するエントリリストを得る


メソッド呼び出しのパラメータ


・ドキュメントのタイプ(int)。現状、2(はてブエントリ)か3(CEEK.JP NEWSからのエントリ)、4(Youtubeビデオ)のみ

キーワードの文字列(string)


をこの順で渡して下さい。


返り値は、


・titles : タイトル文字列(string)の配列

・urls : 対応するurl(string)の配列

・crawled_dates : 対応するクロール日時の文字列の配列。形式は"2006-08-21"という感じ

・categories : 対応するドキュメント群のカテゴリ(はてブとかから持ってきてるやつ)の配列

・tags : 対応するドキュメント群の各ドキュメントについてのタグ配列配列。つまり、他の返り値と違って0番目にキーワード,1番目に対応する値をもった2次元配列を要素とする配列が入れ子になって入れられているということ。

ex) 0番目のドキュメントの0個目のタグキーワード→result["tags"][0][0][0]

0番目のドキュメントの0個目のタグの強さ→result["tags"][0][0][1]


です。



はい、次。

require 'xmlrpc/client'
require 'kconv'

client = XMLRPC::Client.new3(:host => 'ryogrid.myhome.cx',:port => 7777)
#検索するドキュメントのタイプ 2=はてブ 3=CEEK.JP NEWS 他=だめぽ
doc_type = 2

#ドキュメントのタイプと検索したいURL(Kikker内ですでにクロールされてるやつ)を与えてコール
rpc_result = client.call 'KikkerWebAPI.getTasteByURL',doc_type,"http://q.hatena.ne.jp/1120221211"

#ドキュメントのタイトル,クロールされた日にち,カテゴリ,タグとそれに対応する強さの値の順に出力
print rpc_result["title"].tosjis + " : " + rpc_result["crawled_date"] + " : " + rpc_result["category"] + "\r\n" 
rpc_result["tags"].each{|each_keyword|
    print each_keyword[0].tosjis + "=" + each_keyword[1].to_s + ","
}


結果は

人力検索はてな - たとえば、地球から土星まで届くような棒を用意したとします。それを押したり引いたりしてモールス信号で通信を行えば、光速を超える速さで情報のやりとりができ : 2006-08-08 : サイエンス
検出=297.240608,器=276.045792,日記=266.372096,光=197.229456,roygb=117.485217,log=117.299919,ayamnb=114.705747,力学=109.292472,プラトン=109.004532,彡=106.62231,3

こんな感じ

詳細↓

サービス名=KikkerWebAPI

メソッド名=getTasteByURL

できる事=与えたURLを表現するベクトルを得る(Kikker内ですでにクロールされているURLに限る)



メソッド呼び出しのパラメータ


・ドキュメントのタイプ(int)。現状、2(はてブエントリ)か3(CEEK.JP NEWSからのエントリ)、4(Youtubeビデオ)のみ

URLの文字列(string)


をこの順で渡して下さい。


返り値は、

・title : タイトル文字列(string)の配列

・crawled_date : 対応するクロール日時の文字列(string)。形式は"2006-08-21"という感じ

・category : 対応するドキュメント群のカテゴリ(はてブとかから持ってきてるやつ)の配列

・tags : 対応するドキュメント群の各ドキュメントについてのタグ配列。0番目にキーワード,1番目に対応する値をもった2次元配列を要素とする配列が入れ子になって入れられているということ。

ex) 0個目のタグキーワード→result["tags"][0][0]

0個目のタグの強さ→result["tags"][0][1]

です。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/kanbayashi/20060809/p1