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>