ぱんぶろ

パンジーの「いいね!」ブログ

【PHP】Bing Search APIの使い方。月に5000件まで無料で利用できますよ!

     

bing-search-api12

Bingの検索機能を利用できる「Bing Search API」の使い方を紹介します。
月に5,000件まで無料です。

Bing Search APIを利用できるようになるまでの登録手順と簡単なサンプルコード(PHP)を紹介します。
それではどうぞ!

スポンサード リンク

Bing Search APIの登録手順

Bing Search APIの登録手順です。
ちょっと詰まったところもありましたが、基本的には順々に進んでいけばできます。

Microsoft Azure Marketplaceに登録

Microsoft Azure Marketplaceに登録します。以下にアクセスします。
ホーム | Microsoft Azure Marketplace

右上の「サインイン」でサインインしていきます。
bing-search-api10

Microsoftアカウントを使用してログインします。ない方は「アカウントをお持ちでない場合、作成できます。」から登録してください。
bing-search-api2

ログインすると、Microsoft Azure Marketplaceのアカウント登録画面に移ります。「氏名」と「メールアドレス」を入力してくだいさい。
bing-search-api3

使用条件を読み「登録」します。
bing-search-api4

登録され「マイ アカウント」ページに遷移します。ここに大事な情報「アカウント キー」があるので場所だけ覚えておいてください!
bing-search-api5

「Bing Search API」を追加

「マイ データ」に「Bing Search API」を追加します。「マイ アカウント」タブの左にある「データ」をクリックし検索窓に「Bing Search API」と入力し結果に表示された「Bing Search API」をクリック。(もしくは→Bing Search API | Microsoft Azure Marketplace
bing-search-api9

右に月のトランザクション毎にプランが料金体系のプランが表示されています。無料が良ければ0円のものを選択してください。
bing-search-api

サインアップをクリック。
bing-search-api7

これで「Bing Search API」を利用する準備はできました!
bing-search-api8

念のため、「マイ データ」に「Bing Search API」が追加されてるか確認しましょう。(→マイ データ | Microsoft Azure Marketplace
bing-search-api11

ちなみに、403エラーが出てしまう方は、マイ データに「Bing Search API」が登録できてない可能性大です。

Bing Search APIを使ってみよう!

利用する準備ができたので、実際に使っていきましょう。ちょっと癖があるのがBesic認証があるところですね。

リクエスト自体は誰でも遅れますが、Besic認証を挟むため、アクセスキーを取得している人しか結果を得ることができません。

Web検索結果を50件取得するサンプルコード

<?php

$base = "https://api.datamarket.azure.com/Bing/Search/v1/Web";
$account_key = "[ご自身のアクセスキーを入力]";
$param = ["Query" => "堀北真希"]; // 検索クエリ(自由なキーワードで)

$param_string = "";
foreach ($param as $key => $value) {
	$param_string .= "&" . $key . "='" . rawurlencode($value) . "'";
}
$param_string = substr($param_string, 1);
$request_url = $base . "?" . $param_string . '&$format=json';

$auth = base64_encode("$account_key:$account_key");
$data = array(
		'http' => array(
				'request_fulluri' => true,
				'ignore_errors' => true,
				'header' => "Authorization: Basic $auth"
		)
);
$context = stream_context_create($data);
$json = json_decode(file_get_contents($request_url, 0, $context), true);

/* jsonの結果(構造)は以下のコメント外してチェック */
echo "<pre>";
//var_dump($json);
echo "</pre>";

$sites = $json["d"]["results"];

foreach ($sites as $site) {
	
	echo $site["Title"] ? $site["Title"] : ""; // タイトル
	echo "<br>";
	echo $site["Description"] ? $site["Description"] : ""; // 説明文
	echo "<br>";
	echo $site["Url"] ? $site["Url"] : ""; // URL
	echo "<br><br>";
	
}

/* 次の50件 */
echo $json["d"]["__next"];

「堀北真希」というキーワードでBing検索した結果です。取得できるのは「タイトル」とか「説明文」とか「URL」など最低限のものしか提供してくれていません。

なお、簡単なドキュメント以下にあるのでコードと見比べながら読むと理解が進むかもしれません。→Bing Search API | Microsoft Azure Marketplace

「Web」だけじゃなく「Image」や「Video」も検索できるので、エロ画像を自動収集したい方にはうってつけかもしれませんね。(某ゆーすけべーさんが昔やってた技)

まとめ

Bing Search APIの使い方でした。
月に5,000件を無料で使わせてくれるのはかなり魅力的だなって思います。

自分なりの使い方を見つけて楽しんでくださいね!