IE以外のブラウザに対応しました。

以前こんな記事を紹介しました。

楽天ウェブ検索でポイントためるのが、少しだけ楽できるかな?って感じでした。
私も記事の方法で、ちまちまと検索を続けているんですが、まぁまぁメンドクサイんですよ。
もっと楽したいな~と。
そこで思いついたのは「検索を自動でやる」です。
ちょっと制約があるのと、自動化スクリプトがちょっとメンドウですが・・・
これ、やってみたら予想より具合が良い!
ちょいちょい楽天検索トップページが変わりやがる。
くそぅ(゚Д゚)ノ
2019.12.15追記
しばらく放置していたら楽天ウェブ検索の仕様が変わってました。変更しました。
うまく検索できなくなってるぅぅぅorz
自動スクリプト修正だ!!!
というわけで、スクリプトの22行、49行と52行を
最近、Windows7→Windows10にしたけど、動作は無問題ですわん。
2020.4.26追記
またまた、楽天ウェブ検索のトップページ変わってやがる!!!!
(テラー様 お知らせありがとうございました)
スクリプトの20行と24行を変更しました。
2020.7.13追記
うぉ!また変わってる!
スクリプトの25行を変更しました。
2022.1.19追記 ← NEW!
楽天ウェブ検索のトップページ変更に合わせて、スクリプトの26行を変更しました。
あと、エラーが出て検索がすすまないようでしたら、SLEEP(X.X)”の数値X.Xを大きくしてみてください。
PowerShell版も用意しました。ツール不要なら、お手軽です。

最初に制約
まず先に制約を言っときますね。
OSはWindowsブラウザはInternet Explorer(以下IEとします)でないと使えません。
MacやAndroidは対象外です。
ごめんなさい。
検索を自動化するあらまし
自動化にはブラウザをコントロールする手続きと、手続きを実行するツールが必要です。
手続きを実行するツールには「UWSC」を使います。
「UWSC」はWindowsの操作を制御できる便利ツールです。
手続きは「UWSC」が実行できる形式のスクリプトを用意します。
VBScriptで楽天ウェブ検索を自動化している先駆者もいらっしゃいます。
ですが、VBScriptは今のIEはサポート外?なのでUWSCでいきます。
スクリプトの流れは簡単。
人間がやる「検索文字を入力して~検索ボタンをマウスでクリック」をUWSCの命令で表します。
流れは簡単なんですがスクリプトにするのは、ちょっと手間がかかりますね。
スクリプトには、あらかじめ検索文字を設定しておきます。
検索文字は満口数+余裕の数を用意しておきます。
スクリプトを実行すると、設定してある検索文字を自動で検索ボックスに入力します。
入力したあと検索ボタンを自動でクリックします。
これを用意した検索文字で全て検索するまで繰返します。
全ての検索文字を検索しきる頃には、口数が満口になっています。
一応補足しとくと「満口」とは1日で新規検索として受付けられる口数の上限です。
楽天会員だと5口、楽天ツールバーをインストール済みだと30口です。
口数に応じてポイントが山分けされます。
検索にかかる時間
回線状況、サーバー負荷や検索文字のヒット具合なのか・・・結構バラバラ。
私の環境では口数が5口で40秒くらい、30口だと4分くらいです。
検索終わるまで、ぼーっと見ていることが多いです。
ピコピコ自動で動いているのは、見ていて面白いですね。
検索を自動化する詳しい方法
UWSCの入手
とにもかくにも「UWSC」をダウンロードしないと始まりません。
入手先はVectorです。
(作者”うみうみ”さんのホームページ、リンク先消えてる?)

ダウンロードしたファイルは圧縮されています。
ディスクトップなど適当な場所に解凍してください。
なお、インストールは不要です。ありがてぇ。
スクリプトの準備
スクリプトはこんな感じです。
コピーして適当なファイル名で保存してください。
ただし、ファイルの拡張子は「.uws」がお約束です。
// インターネットエクスプローラを立ち上げ----------------------
PUBLIC IE
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.VISIBLE = TRUE
WID = HNDtoID( IE.hwnd )
CTRLWIN( WID, MAX )
// 楽天ウェブ検索に移動---------------------------------
IE.NAVIGATE( "https://websearch.rakuten.co.jp/" )
wait( )
// 最初に検索する文字(トップページ用)##########
DIM 初回検索文字[] =_
"01発目の検索"
// ###############################
// 楽天ウェブ検索のトップページで検索--------------------
//IESETDATA( IE ,初回検索文字[0] ,"qt" )
IESETDATA( IE ,初回検索文字[0] ,"","id=search-input" )
SLEEP( 0.5 )
//IESETDATA( IE ,TRUE ,"" ,"id=sBtn" )
//IESETDATA( IE ,TRUE ,"","class=Search-module__submitBtn__3dudB" )
//IESETDATA( IE ,TRUE ,"","class=SearchBox-module__searchButton__5sB81","id=serch-submit" )
//IESETDATA( IE ,TRUE ,"","class=sc-AxgMl cnkkSb SearchBox-module__searchButton__5sB81","id=serch-submit" )
IESETDATA( IE ,TRUE ,"","class=sc-jRQBWg gXRECq SearchBox-module__searchButton__5sB81","id=search-submit" )
wait( )
// 2回目以降に検索する文字###############
DIM 検索文字[] =_
"02発目の検索", "03発目の検索", "04発目の検索", "05発目の検索", "06発目の検索", _
"07発目の検索", "08発目の検索", "09発目の検索", "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発目の検索", "35発目の検索", "36発目の検索", _
"37発目の検索", "38発目の検索", "39発目の検索", "40発目の検索"
// ###############################
// 2回目以降の検索------------------------------------
FOR 回数 = 0 TO 38
IESETDATA( IE, 検索文字[回数], "qt" )
SLEEP( 0.5 )
IESETDATA( IE, TRUE, "", "id=searchBtn" )
wait( )
NEXT
// 待ちの処理-------------------------------------------
PROCEDURE wait( )
REPEAT
// SLEEP( 1.0 )
SLEEP( 5.0 )
UNTIL ( ! IE.BUSY ) AND ( IE.READYSTATE = 4 )
// SLEEP( 0.5 )
SLEEP( 5.0 )
FEND
このスクリプトに少し手を加えます。
このままでも動作しますが、類似の検索文字なので口数がたまりません。
お好みの「検索文字」を追加します。
手を加える部分を説明します。
15行目
“01発目の検索”を適当な検索文字に置換えてください。
楽天ウェブ検索のポータルページで最初の検索をする文字です。
こんな感じ。
例)”よさこい祭り”
26行目~33行目
同じく”02発目の検索”以降を適当な検索文字を置換えて下さい。
楽天ウェブ検索のポータルページ以外で検索をする検索文字です。
こんな感じ。
例)”文春砲”, “週刊ポスト”, “MS-06 ザク”...
口数の満口が5口の場合は”02発目の検索”~”10発目の検索”くらいを置換えればOKです。
満口が30口の場合は全部を置換えてください。
なんで満口の口数より多い検索文字にするのか?
検索が失敗することがあるためです。
満口の数の検索で、きっちり満口数分たまらないことがあります。
なので余裕分も設定しておきます。
置換えの数が多いですが頑張ってください。
検索文字の置換えが終わったらスクリプトを保存します。
スクリプトの実行
いざ実行!!っと、その前に楽天にログインを済ませておいてください。
楽天にログインしておかないと、口数たまりませんので。
解凍したフォルダの「UWSC.exe」をダブルクリックしてUWSCを起動します。
起動すると、ディスクトップに小さいボタンが組み合わさったようなものが現れます。
UWSCを起動するとWindowsのタスクトレイに入ってしまうことがあります。
タスクトレイのUWSCアイコンをマウスで右クリックしてメニューを出します。
メニューの「タスクトレイからでる(W)」でUWSCがディスクトップに出てきます。
ディスクトップのUWSCにスクリプトファイルをドラッグ&ドロップします。
UWSCが[STOP]ボタンだけの表示になり、スクリプトの実行が始まります。
スクリプトの終了
スクリプトの実行がはじまると自動でIEが立上り、次々と検索を繰返します。
検索文字を全て使い切るとスクリプトは停止します。
スクリプトを途中で止めるには[STOP]ボタンをクリックします。
さいごに
一度スクリプトを作ってしまえば、あとはドラック&ドロップだけの超お手軽作業です。
UWSCは実行スケジュールも設定できます。
スケジュールを設定すれば、ドラッグ&ドロップも不要のほったらかし運用も可能です!
UWSCを使うとIEだけではなくWindowsをいろいろと自動操作できます。
ぜひ活用してみてください。
よろしければクリックお願いします
にほんブログ村
コメント
楽天ウェブ検索は20口分検索すれば5ポイントもらえるという書き込みを見て、それは本当なのかと検索していてここにたどり着きました。
ラッキーでした!
こんな便利なスクリプトを公開していただき、感謝です!
もう20口なんてどうでもよくなっちゃいました、これがあれば。
UWSC は使ったことがあったので敷居は低かったです。
あっ、メアドはフェイクです。すみません。
でも、とにかくお礼が述べたかったので書き込みいたしました。
本当に感謝です!
コメントありがとうございます!!
何となく作ったスクリプトなので、紹介するのがちょっと恥ずかしかったんですが‥
お役にたてればうれしいです。
なんとなくなんですか?
ご謙遜を!
本日も快調に働いてくれました。
当方の環境では30口に1分45秒くらいしか要しません。
ADSLの12MにIE9という時代物の組み合わせでもこれですから、
試していませんが、Win10機のほうでしたらもっと短くなりそうです。
ご報告まで。
無事動いているようで、よかったです。
ときたま検索がうまくいかず、満口に足らない場合あります。
もう一度、実行するとOKなんですが、スクリプトを短くしようとしている弊害か、環境なのか・・・
使い始めて20日になりますので、その後の使用感を報告します。
「満口に足らない場合」は、こちらの環境では見られません。
2個目が読み込まれないことがあるのかな、と感じることがあるくらいで、
それ以外はすべて口数を獲得してくれます。
本当にすばらしい提案とスクリプトだと、日増しに感謝の念を強くしております。
これからも時々訪れさせていただきますね。
ありがとうございます!
でも、ブログぜんぜん更新できていないです・・・
持続力がないなぁ
とても便利です。
ありがとうございました。
ありがとうございます。
ほめれると照れくさいなぁ
昨日あたりUIが変わって使えなくなっちゃったみたいです…
お知らせありがとうございました!!
やばい、気が付かなかった・・・検索空振りしていました。
スクリプト修正しました。
2行書き換えればいけます。
ブログを拝見して活用させて頂いていたのですが
何日か前から、エラーが出る様になってしまいました。
私だけでしょうか?
もし、どうしたらよいかわかりましたらアドバイス頂けませんでしょうか。
エラーメッセージは
COM_ERROR:例外が発生しました。
53行目:UNTIL(!IE.BUSYAND(IE.READYSTATE=4)
と出ております。
よしお様
私のPCでは現象が出ていないため、原因がはっきりしないのですが
エラー行の前後の”SLEEP(X.X)”の数値X.Xを増やして試してみてください。
ありがとうございました。お返事遅くなりましたが
教えて頂いた部分の数値を増やしたらまたできる様になりました。
本日から、IEでWEB検索の画面すら表示されなくなりました。
6/15で完全停止見たいです。
可能であれば、他のブラウザで対応いただけると非常にありがたいのですが・・・
コメントありがとうございます。
自分は楽天ウェブ検索から締め出されてしまい、最近チェックしてませんでした・・・
Google Chrome版が、あるにはあります。
動かす準備が必要で、ちょっと面倒なので公開していませんでした。
少々お待ちください。
Chrome版の記事です。
https://ziend.net/post-1327/