analytics-800

前編では、AppleScriptを使ってwebブラウザの操作を行うスクリプトを紹介しました。
中編ではデータファイルをダウンロードするところまでご紹介します。

公開されているCSVファイルをダウンロードしてみよう

このような場合は、Automatorでシェルスクリプトを書くことができるので、curlコマンドを使えば瞬殺だと思いますが、あえてAppleScriptで実行してみましょう。

前編ではSafariを立ち上げて実行していましたが、今回はChromeを使います。
ActionScriptではApple純正でなくてもインストールされている様々なアプリを実行できます。実行するには以下の画面を見ると良いです。

  • ファイル > 用語説明を開く
    スクリーンショット 2017-02-28 17.24.29

こちらの名前で実行できます。Chromeと入力しても、スクリプト実行時にGoogle Chromeと自動で修正してくれますが。

公開データでCSV形式のもの、意外とあまりなかったのですが横浜市の年齢別人口推移がCSVで取得可能ですので、こちらを自動ダウンロードします。

早速、以下にスクリプトを示します。


-- まずGoogleChromeを立ち上げます tell application "Google Chrome" activate --横浜市の年齢別人口推移 open location "http://www.city.yokohama.lg.jp/keizai/toukei/yokohamakeizai/csv/01/1-5-1.csv" end tell -- キー操作を実行するにはSystem Eventsを立ち上げる必要があります。 tell application "System Events" delay 2 keystroke return delay 2 -- データ保存するのにコマンド+Sを利用しています。ショートカットキーはできるだけ使い倒しましょう。 keystroke "s" using {command down} end tell

自動画面クリックでデータをダウンロードしてみよう

さて、今回のエントリーの核心はこちらの章になります。今までの解説はここに至るまでの準備でした。
url直アクセスでダウンロードできるようなデータはあえてGUIスクリプティングする必要はありませんが、そういった方式ではダウンロードできないデータを自動ダウンロードするとき、GUIスクリプティングが有効となります。

今回アクセスするサイトは経済産業省のオープンデータサイトOpen Data METIより、「第3次産業活動指数 原指数 月次(csv)」をダウンロードしてみましょう。

Chromeでの例は上記で示しましたので、以下はSafariでのサンプルを記載します。


tell application "Safari" activate open location "http://datameti.go.jp/data/ja/dataset/841bf249-6ffd-4ff4-b562-97cae12308fc/resource/abf117bf-5bb7-4a67-906f-c23fc3d3ef9b" end tell tell application "System Events" delay 2 -- フルスクリーンにします。 keystroke "f" using {command down, control down} delay 2 -- ダウンロードボタンをクリック click at {1300, 430} delay 2 -- CMD+Sで保存 keystroke "s" using {command down} -- 保存ダイアログをマウス操作 delay 2 click at {840, 230} delay 2 click at {840, 210} delay 2 click at {1030, 290} end tell

いかがでしたでしょうか?プルダウンの細かな操作も、dalayとclickを組み合わせれば、人の操作をスクリプティングできるのです。単純作業から解放される世界が垣間見えたと思います。

後編ではこちらの処理をAutomatorに取り込んで見たいと思います。