WSH(JScript) でWeb検索の自動化
VBScriptならいっぱいあるのに、JScriptだとどこにもないのでWeb検索の検索例の記事を書いてみました。
軽い説明など
下記のコードをテキストファイルに「wsf」の拡張子で保存してダブルクリックすれば実行できます。
「search_texts」の配列を変更すれば、指定の検索ワードで検索できます。あとは、検索結果をファイル保存等すれば、使いみちはいろいろあるかと。
Google先生は、最初に表示してくれるのに、楽天は表示すらしてくれない…(´;ω;`)
ソースコード
search.wsf<?xml version="1.0" encoding="UTF-16" standalone="yes" ?>
<package>
<job id="main">
<?job error="false" debug="false" ?>
<script language="JavaScript">
//<![CDATA[
(function() {
"use strict";
// 操作可能状態まで待機する
function wait(ie) {
while (ie.Busy || (ie.readystate < 3)) {
WScript.Sleep(100);
}
WScript.Sleep(500);
}
function main() {
var ie = new ActiveXObject("InternetExplorer.Application");
ie.Navigate("about:blank"); // 空ページ表示
ie.Visible = true; // IEを表示する
wait(ie);
var search_texts = ['バグ取りの日々', '天気', 'ニュース'];
for (var i=0; i<search_texts.length; i++) {
var search_text = search_texts[i];
// 楽天で検索する例
var url = 'https://websearch.rakuten.co.jp/Web?qt='+encodeURIComponent(search_text);
ie.Navigate(url); // 検索
wait(ie);
var results = ie.document.querySelectorAll('.os-window');
if (results.length != 0) {
WScript.Echo(results[0].innerText); // 最初の検索結果を表示
}
// Googleで検索する例
// var url = 'https://www.google.com/search?q='+encodeURIComponent(search_text);
// ie.Navigate(url); // 検索
// wait(ie);
//
// var results = ie.document.querySelectorAll('.g .rc .r');
// if (results.length != 0) {
// WScript.Echo(results[0].innerText); // 最初の検索結果を表示
// }
WScript.Sleep(5*1000);
}
// IEを消去
//ie.Quit();
//ie = null;
}
main();
})();
//]]>
</script>
</job>
</package>