今回、マイクロソフトのBingの検索結果を、Bing Search APIを使ってプログラム的に取得する方法をまとめました。
Googleの検索結果を取得する方法については、以下の記事をご覧ください。
目次
Microsoft Azure Marketplaceからアカウントキーを取得
まず、Microsoft Azure Marketplaceにログインして、アカウントキーを取得します。
からログインするとよいです。
アカウントを持っていない場合、作成します。
ログインすると、プライマリアカウントキーにアカウントキーが記載されています。
次に、
を開きます。
Bing Search APIは、無償で5,000トランザクション/月まで使えることができるので、「更新」を押しておきます。
これで準備が整いました。
Javaでプログラム的にBingから検索結果を取得する
それでは、「飛行機」というキーワードをBingからJavaプログラムを使って取得してみます。
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 |
class BingSearch { public static void main(String[] args) { Authenticator.setDefault(new BingAuthenticator(bing_api_key)); URL url = new URL(bingRootURL + "?Query=%27" + URLEncoder.encode("飛行機", "utf-8") + "%27" + "&$skip=1"); URLConnection urlConnection = url.openConnection(); urlConnection.connect(); BufferedReader in = new BufferedReader(new InputStreamReader( urlConnection.getInputStream(), "utf-8")); } } class BingAuthenticator extends Authenticator { private String accountKey; public BingAuthenticator(String accountKey) { super(); this.accountKey = accountKey; } protected PasswordAuthentication getPasswordAuthentication() { final String username = accountKey; final String password = accountKey; return new PasswordAuthentication(username, password.toCharArray()); } } |
プログラムはこんな感じです。
Microsoft Azure Marketplaceから取得したAPIキー、認証用のユーザー名及び、パスワードを使います。
例えば、このプログラムで生成したURLを使ってブラウザから以下のように入力します。
ユーザー名とパスワードの入力を促すダイアログが表示されます。
ここで、ユーザー名とパスワードはともにMicrosoft Azure Marketplaceで取得したプライマリアカウントキーになります。
URLのパラメーターのオプションとして以下を指定できます。
$top=50
返される結果の数を指定します。最大は50です。指定しないと50になります。
$skip=1
オフセット。返された結果の出発点を指定します。指定しないと1になります。
$format="json" または "atom"
応答の形式を指定します。JSONかATOMです。指定しないとATOMになります。
あと、調べてみる限り、検索件数を取得できないようです。
何か別の方法があるかもしれません。
Bing Search APIの料金
Bing Search APIの月あたりの料金は次の通りです。
トランザクション数 | 金額 |
5,000トランザクション/月 | 月額 \0 |
10,000トランザクション/月 | 月額 \1,570 |
20,000トランザクション/月 | 月額 \3,140 |
50,000トランザクション/月 | 月額 \7,850 |
100,000トランザクション/月 | 月額 \15,699 |
250,000トランザクション/月 | 月額 \39,248 |
500,000トランザクション/月 | 月額 \78,496 |
1,000,000トランザクション/月 | 月額 \156,993 |
1,500,000トランザクション/月 | 月額 \235,490 |
2,000,000トランザクション/月 | 月額 \313,986 |
2,500,000トランザクション/月 | 月額 \392,482 |
1トランザクションで50位まで取得できるので、100位まで取得すると仮定すると1キーワードにつき2トランザクションです。
1日83キーワード100位まで取得すると仮定すると、1日で166トランザクション、30日で4,980トランザクション必要です。
ここまでなら無料で出来そうです。
まとめ
検索市場のシェアとしては、Googleに比べるとBingは圧倒的に少ないと思います。
ただ、APIとして無料で使うには、Googleよりも安価に使えそうです。
ここで調査したことをBingと比較すると以下の結果になりました。
無料で出来るキーワード数
Google: 10キーワード/100位/1日
Bing: 83キーワード/100位/1日
プログラミングの無料レッスン体験
約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp
<Codecampの特徴>
1 現役エンジニアによる指導
2オンラインでのマンツーマン形式の講義
3大手企業にも導入されている実践的なカリキュラム
↓無料体験レッスン実施中です。
コメント