Microsoft Rewardsは、Bing検索などMicrosoftのサービスを利用することでポイントを貯めることができるサービス。
以前から存在は知っていたが何となく敬遠していた。
最近Bing AIを使い始めたことでにBing検索の活用頻度が増えたので、ついでに登録してみた。
コンピューター、プログラミング、モバイル、ガジェットなどエレクトロニクス分野を中心にネタを提供するウェブサイトです。最近は中国ネタにも注力中。かつてはHWD15向けのAndroidアプリ「HWD15 Status Notifier」を作ってたりしていました。
Microsoft Rewardsは、Bing検索などMicrosoftのサービスを利用することでポイントを貯めることができるサービス。
以前から存在は知っていたが何となく敬遠していた。
最近Bing AIを使い始めたことでにBing検索の活用頻度が増えたので、ついでに登録してみた。
一応Microsoft Storeで商品を買うことでもポイントは貯まるが、基本的にはPCとスマホアプリでBing検索をすることでポイントが貯まる仕組み。
デイリークエストもあるが、クリックしてその単語を検索するだけorクイズ形式(何回ミスしてもOK)なのでクリアは簡単。
多少の変動はあるものの、一日で300強のポイントが貯まる。
15日ほど続ければ5250ポイントでアマギフ600円分が貰えるぐらいにはなる。
手間暇かかる割に30日みっちりやって1200円と思うとかなりしょっぱいが、いわゆる「ポイ活」といわれる活動の中では割のいい数字ではある。一応。
これを機にスマホのBingアプリを入れてみた。
見た感じ「ただのBing検索アプリか」「Edge起動した時の画面そっくりだな」という感想だった。が、実はブラウザとして割としっかり作られていて、タブ機能とかニュースとかも揃っている。
他アプリで文字を選択して検索🔍すると
Bingが検索用のアプリケーションとして選択でき、タップすればそのままBingがブラウザとして立ち上がるため、シームレスに検索が可能になっている。
ホーム画面に検索ウィジェットを追加することも可能なので、ほぼGoogle検索と同じ感覚で使えるのはありがたい。
また、設定画面ではAdblock Plusが使えることも分かった。
Firefoxのように拡張機能が使えない代わりに、アプリ単体でも痒い所に手が届く仕様になっているのは素晴らしい。
毎日スマホで20回、PCで30回検索することで150ポイントが手に入る。
スマホの方は普段からBingで検索するようにすればクリアできるのだが、PCの方はChrome+Google検索が定着してしまっており、思い出した時にEdgeを立ち上げて使用する程度。これではなかなか回数が稼げない。
あんまりやりたくはない手だが、「とりあえず何か検索して回数を稼ぐ」方法を確立したい。
注意:下記はあくまでも実験目的で実施した内容であり、実際に実行する事なき用お願いします。
Googleトレンドを使えば「今日のホットワード」をずらっと取得できる。
これをBing検索に放り込むことで毎日のトレンドを把握してみよう。ついでに検索回数も稼げるし。
Windows環境でWebからデータを取ってきて簡単な加工をするのであればPowerShellが手軽だ。インストール不要で開発・実行できるし、他のWindows環境に持って行っても大抵は動く。
Googleトレンドの急上昇ワードはAtom(XML)で取得できる。
https://trends.google.co.jp/trends/hottrends/atom/hourly
日本語の内容を取得したい場合はこっち
https://trends.google.co.jp/trends/trendingsearches/daily/rss?geo=JP
PowerShellでこのようなWeb URIからデータを取得するにはInvoke-WebRequestを使用する。
[xml]$Response = Invoke-WebRequest -Uri "https://trends.google.co.jp/trends/hottrends/atom/hourly"
これで$Responseに取得データが格納される。
※XMLデータとして認識されないことがあったので型指定を追加
そして取得した内容はechoで表示できる。
入れ子構造(構造体)になっている場合は.(ドット)で繋げばいい。最終的に
$Response.rss.channel.item
にトレンドワードが複数格納されていることが分かった。
titleがワード自体で、ほかにも画像へのリンクやトラフィック数も格納されている。
今回必要なのはtitleだけだが。
foreachを使用して複数のitemからtitleだけを抽出してみる。
ForEach ($msg in $Response.rss.channel.item){echo $msg.title}
このようにワードだけを抽出できた。
あとはBingの検索URLと合体させ、
ForEach ($msg in $Response.rss.channel.item){echo "https://www.bing.com/search?q=$($msg.title.Replace(" ", "+"))"}
とすることで即座にBing検索できるURLを生成することができた。
スペースを+に置き換えているのは、空白があるとそこでURLが切れてしまうから。
スペース以外にも'とか特殊な文字が入ると切れてしまうのだが、細かいところは割愛した。
Power Automateとかを使えば更に全自動化もできるんだろうけど、あんまりやりすぎると不正利用としてみなされてしまう恐れもある。
今回はあくまで「Bingでトレンドワードを検索して流行を把握したい」が目的なので、一つずつ手動でページを開いて検索結果に目を通しやすい方法を採った。
もしページを開くところまで自動化するのであれば、echoをstartに置き換えて
ForEach ($msg in $Response.rss.channel.item){start "https://www.bing.com/search?q=$($msg.title.Replace(" ", "+"))"; Start-Sleep -s 3}
あまりにも早くページを開きすぎるとポイントが加算されないことがあるので、1つのリンクを開く度に3秒待機させることで、3秒ごとに順番にページを開くことができる。
また、Edgeを「通常使うブラウザ」に設定していないがEdgeでリンクを開きたい場合は以下のようにすればよい。
ForEach ($msg in $Response.rss.channel.item){start microsoft-edge:"https://www.bing.com/search?q=$($msg.title.Replace(" ", "+"))"; Start-Sleep -s 3}
これまでお手軽バッチスクリプトはBATやVBSを使っていたが、Webアクセスしようとすると難易度が急激に上がるし、構造体や配列、リストといった概念を持ち込むのも難しい。
PowerShellなら上記のようにWebもリストも簡単に扱える上、C#やVB.NETのコードを動かすこともできるなど拡張性も高く、近代的な言語に慣れている人にとっても扱いやすい。
バッチスクリプトとして使用しようとすると実行ポリシー(セキュリティ設定)が壁があってちょっと面倒くさいものの、使い勝手は抜群なので今後もちょくちょく使っていきたい。
コメントする