Bing News Search APIを使ってニュース記事を取得する手順
はじめに
Microsoft Azureには色々なサービスがありますが、その中に最新のニュース記事を取得できるBing News Search APIというものがあります。この記事では、Bing News Search APIを使用できるようにするまでの手順と実際にwget
コマンドでニュースを取得する手順をまとめます。
前提と環境
以下が前提となります。
- Microsoft Azureアカウントは作成済とする
Bing Search APIの利用価格は以下の公式ドキュメントに記載されています。無料枠として1000回のリクエスト(月)が用意されています。また、Microsoft Azureアカウントを新しく作成すると執筆時点で2万円分相当のクレジットも付与されるので十分試せると思います。
Bing Search APIs では、使用した分だけのお支払いになります。Microsoft Azure Cognitive Services の Bing Search APIs の価格オプションを確認し、比較できます。
Bing News Search APIを追加する
まずはじめにBing News Search にアクセスし、「Bing News Searchを試す」をクリックします。
以下のようにアカウントの取得状態に応じて選択肢が表示されるので、各自の状況に合わせて選択します。ここではMicrosoft Azureアカウントは取得済とし、「Azure アカウントをお持ちの場合」で「サインイン」をクリックして進めます。もしまだAzureアカウントを取得していない場合はまず取得してみてください。
Microsoft Azureアカウントにログインすると以下のようにこれから追加するBing News Search APIの設定を入力するフォームが表示されます。
「価格レベル」は「F1」(無料枠)を選択します。「リソースグループ」は適当に「新規作成」から作成しました。「リソースグループの場所」も日本に設定しています。最終的に以下のように入力しました。入力して利用規約を読んだ上でチェックを入れ、「作成」をクリックして進みます。
「デプロイ中」と表示され少々時間がかかるのでデプロイが完了するまで待機します。
デプロイが完了すると以下のように表示されます。「リソースに移動」をクリックします。
以下のようにBing Search API用のAPIキーとエンドポイントを確認できます。
後はこれら2つの情報を使って実際にニュースを取得してみます。
wgetでニュースを取得する
Bing Search APIで指定できるオプション等は以下の公式ドキュメントに記載されています。
Describes the programming elements of the Bing News Search API.
最新ニュースを取得する
その時点での最新ニュースを取得したい場合は以下のようにwget
コマンドで特にオプション等は指定せずにGETリクエストを送信します。
$ wget --header='Ocp-Apim-Subscription-Key: asia97y3h9237h97aweir9a7wh39t7a' 'https://yourapi.cognitiveservices.azure.com/bing/v7.0/news'
リクエストヘッダとしてOcp-Apim-Subscription-Key:
に自身のAPIキーを渡します。asia97y3h9237h97aweir9a7wh39t7a
がAPIキー部分です。これを各自のAPIキーに置換してください。また、https://yourapi.cognitiveservices.azure.com/bing/v7.0/news
は各自のエンドポイントになりますのでここも各自のものに置換してください。
上記を実行すると「news」という名のファイルがコマンドを実行した時のディレクトリ下に作成され、内容は以下のようにJSON形式になります。
{
"_type": "News",
"webSearchUrl": "https:\/\/www.bing.com\/news\/search?q=&nvaug=%5bNewsVertical+CategoryBrowseRequest%89%123%12+Category%89%33rt_MaxClass%22+ResultsPerCategory%89%123%11%5d&form=AAAA00",
"value": [
{
"name": "中国シャオミが日本上陸--1億画素スマホや炊飯器など“高コスパ ...",
"url": "https:\/\/japan.cnet.com\/article\/35146586\/",
"image": {
"thumbnail": {
"contentUrl": "https:\/\/www.bing.com\/th?id=ON.8D24276DB3555FDBAE91615CC72363D4&pid=News",
"width": 640,
"height": 480
}
},
"description": "スマートフォン大手の中国シャオミは12月9日、日本市場参入を発表した。同社では、すでに90の国と地域で展開している。 同社は、サムスン、ファーウェイ、アップルに次ぐ、世界第4位のスマートフォンメーカー。7人の創業メンバーのうち3人がデザインの ...",
"provider": [
{
"_type": "Organization",
"name": "CNET"
}
],
"datePublished": "2019-12-09T07:15:00.0000000Z",
"category": "ScienceAndTechnology",
"headline": true,
"ampUrl": "https:\/\/m.japan.cnet.com\/amp\/story\/35146586\/"
},
{
"name": "【今朝の5本】仕事始めに読んでおきたいニュース",
"url": "https:\/\/www.bloomberg.co.jp\/news\/articles\/2019-12-09\/Q28YYZDWLU7A01",
"image": {
"thumbnail": {
"contentUrl": "https:\/\/www.bing.com\/th?id=ON.5FEBB3EACDE5F85570F193C397FCBAE1&pid=News",
"width": 700,
"height": 418
}
},
"description": "ボルカー元FRB議長死去、対中関税15日発動なさそうと米農務長官 モルガンS人員削減、ソフバンク融資枠、BofAの無料化戦略 1980年代に米連邦準備制度理事会(FRB)議長として米国の狂乱インフレを大胆な政策で鎮静化させ、後のオバマ政権で ...",
"about": [
{
"readLink": "https:\/\/myapi.cognitiveservices.azure.com\/api\/v7\/entities\/79464325-4ebf-5477-3c6f-975a3cb4d4a4",
"name": "Michael Bloomberg"
}
],
"mentions": [
{
"name": "Michael Bloomberg"
},
{
"name": "United States"
},
{
"name": "Port of Los Angeles"
}
],
"provider": [
{
"_type": "Organization",
"name": "ブルームバーグ"
}
],
"datePublished": "2019-12-09T20:21:00.0000000Z",
"category": "World",
"headline": true
},
{
(以降省略)
"value"
の中にニュースが格納されています。
カテゴリを指定してニュースを取得する
カテゴリを指定して最新ニュースを取得することもでき、以下のようにcategory
パラメータを付与します。以下はカテゴリとして「ScienceAndTechnology」を指定しています。
$ wget --header='Ocp-Apim-Subscription-Key: asia97y3h9237h97aweir9a7wh39t7a' 'https://yourapi.cognitiveservices.azure.com/bing/v7.0/news?category=ScienceAndTechnology'
なお、指定できるカテゴリについては、公式ドキュメントの指定可能なカテゴリ名一覧(言語別) に記載されています。
キーワードを指定してニュースを取得する
キーワードを指定してのニュース取得も可能で、エンドポイントとしてhttps://yourapi.cognitiveservices.azure.com/bing/v7.0/news/search
を使用します。
$ wget --header='Ocp-Apim-Subscription-Key: asia97y3h9237h97aweir9a7wh39t7a' 'https://yourapi.cognitiveservices.azure.com/bing/v7.0/news/search?count=10&q=microsoft&sortBy=date'
上記では、count=10
が取得件数を10件、q=microsoft
がキーワードとして「microsoft」、sortBy=date
が時系列順でソートをそれぞれ指定しています。
まとめ
Bing News Search APIを使ってニュース記事を取得する手順をまとめました。この記事ではwgetコマンドを使用しましたが、後はPythonやNode.jsなどお好きな言語でHTTPリクエストを作成すれば同様の結果を取得できます。
関連記事
- 公開日:2019/12/12 更新日:2019/12/12
Linux版が公開されたMicrosoft TeamsをUbuntuにインストールする
Microsoft TeamsはMicrosoftのSlackとも言えるツールです。これまではLinux版が提供されていませんでしたが、2019年12月11日にLinux版(プレビュー版)が公開されました。この記事ではMicrosoft TeamsをUbuntuにインストールする手順をまとめます。
- 公開日:2019/10/01 更新日:2019/10/01
OneDriveのフォルダを保護できるPersonal Vault機能を全ユーザが使用可能に
2019年6月25日にMicrosoftがOneDrive上で特定フォルダをパスワード保護できるようになるPersonal Vault機能をアナウンスしていました。そしてこの機能が2019年9月30日より全ユーザーに対して開放されて使えるようになりました。
- 公開日:2019/06/25 更新日:2019/06/25
MicrosoftのOneDriveがよりセキュアに。パスワード保護や2段階認証保護が利用可能に。
2019年末にはOneDrive上で特定フォルダをパスワード保護したり、指紋認証や顔認証などの生体認証、さらに2段階認証を設定したりできるようになるようです。公式ブログではこの機能をPersonal Vaultと表現しています。