Google画像検索APIやYahoo!画像検索APIが廃止されたり有料になったりして画像を扱うWebサービスを作りにくくなったのですが、MicrosoftがBing Search APIとして画像検索APIを提供しています。
月間5000トランザクションまで無料なので使ってみようと思って調べていたのですが、旧バージョンの情報が混在していたり公式のドキュメントが探しにくかったりしてなかなかうまく動かすことができませんでした。
あちこち調べてようやくまともに動かせるようになったので、2013年12月27日現在動作するサンプルを書いておきます。
ADs
指定のURLにアクセスするとAtomかJSONで結果を取得できます。
ただしアクセスの際にbasic認証が必要です。
具体的には以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
//アカウントキー(顧客IDというものもありますがそれではないです) $accountKey = 'API_KEY'; //検索クエリ $keyword = 'キーワード'; //検索結果から先頭0件を除外する。このパラメータを使って複数ページに渡る結果を取ります $skip = 0; //何件取るか。Max50件です $top = 50; //'json'か'atom'。atomはsimplexml_load_fileでパースできなかったのでjsonのほうがいいと思う。 $format = 'json'; //Basic認証 $cred = sprintf('Authorization: Basic %s',base64_encode($accountKey . ":" . $accountKey) ); $context = stream_context_create(array( 'http' => array( 'header' => $cred ) )); //注意点 //クエリはシングルクォーテーションで囲うこと。 //$skip,$format,$topは変数ではなく「$」も込みで引数です $response = file_get_contents('https://api.datamarket.azure.com/Bing/Search/Image?$skip='.$skip.'&$format='.$format.'&$top='.$top.'&Query='.urlencode( '\'' . $keyword. '\''), 0, $context); $response = json_decode($response); foreach($response->d->results as $val){ //あとは好きな処理を行う } |
これが本当に見つけにくいのですが、
以下のページの
https://datamarket.azure.com/dataset/bing/search
Migration Guideというのが公式ドキュメントです。
英語でなぜかWordファイルです。わけが分からないよ。
ADs
BingSearchAPIの情報を探していてこちらにたどり着きました。
はじめまして、tokuと申します。
突然の質問で恐縮ですが、Bing Search APIを実装したページからの検索状況をBingウェブマスターツールで解析することは可能でしょうか。
通常、Bingウェブマスターツールによる解析は、Web全体から解析対象となるサイトへの検索状況の解析になるかと思いますが、それを特定のページに設置したBing検索(BingSerachAPI)から解析対象となるサイトへの検索ワードに限定して、集計したいです。
不躾かとは思いますが、ご回答いただけましたら幸いです。
よろしくお願いします。
toku さま
コメントありがとうございます。
Bingウェブマスターツールを使ったことがないのでどうすればよいのか分かりません。
お力になれず申し訳ありません。