sikuli入門③webサイト情報をテキストファイル(メモ帳)に自動保存する

2019年11月9日

今回は、sikulixによるテキストファイルの自動保存するコードについて紹介します。

ブラウザ自動操作でwebサイトの情報を取得しましたが、取得した情報を自動的にメモ帳を使ってテキストファイルで保存する方法を解説します。

 

前回はChromeブラウザ操作でWebサイト表示

前回のsikuli入門②ではChromeブラウザをsikuliで自動操作して、Webサイトを表示しました。

sikuli入門②Chromeブラウザ自動操作でWebサイトを表示する方法

日本で最も有名なヤフーのサイトにChromeで自動的に表示しました。

 

RPA業務自動化は情報の取得・加工が不可欠

ただ、sikulixでWebサイトを表示させるだけではRPAとしては活用ができません。

表示したWebサイトの情報を取得してこそ、業務自動化につながります。

そこで、今回ヤフーのトップページにあるニュースを取得し、テキストファイルに保存するコードを作成します。

ヤフトピ(トップに掲載されるニュース)8本にどういったニュースが掲載されやすいか、取得したデータから傾向を掴むことができます。

こうした作業は人間が行うよりもコンピュータが行うのに適した作業です。

 

Webサイト情報取得(コピー)で使うsikuliコマンド

今回のWebサイトの情報を取得するためにはWebサイト情報テキストをコピーする必要があります。

そのコピーのために、適切な領域をマウスで選択するために必要なsikuliコマンドは以下の3つです。

  1. hover()
  2. mouseDown()
  3. mouseMove()

1つ目のhover()コマンドは、引数に指定したスクリーンショットの画像上にマウスをホバーします。

hoverコマンドによって、コピーするテキスト領域の位置を発見します。

続いて2つ目のmouseDown()ではマウスの左ボタンや右ボタンを押下させることができます。これによって、テキスト範囲の選択が可能になります。

最後のmouseMove()で、x方向とy方向の数値を入力を入力することで、マウスカーソルを移動させることができます。

ここで入力する移動させる量となっており、座標値ではありません。

 

Webサイト取得情報をテキスト保存するサンプルコード

以下のSikulixで用意したコードスクショです。

ヤフトピのニュース8本を取得して、テキストファイルに保存するsikulixのソース

さらに、コードをテキストでも以下に記載します。

#ヤフトピ6本をマウス操作でコピーして取得後、Chromブラウザを終了する
hover("「もっと見る」のスクショ画像")
mouseMove(0,-20)
mouseDown(Button.LEFT)
mouseMove(-40,-220)
type('c', Key.CTRL)
type('w', Key.CTRL)

#メモ帳を起動し、コピーしたヤフトピを貼り付けて保存する
doubleClick("メモ帳のショートカットアイコンの画像")
wait(5)
type('v', Key.CTRL)
type('s', Key.CTRL)
type("test")
type(Key.ENTER)
wait(5)
type('w', Key.CTRL)

※前回の入門②の内容は省略しています。

 

サンプルコードで実行する内容を解説

サンプルコードで実行している処理の流れについて1つずつ解説していきたいと思います。

ヤフーのWebサイトからヤフトピの見出しをコピー

ヤフー・ジャパンのニュース情報

ヤフーのページにアクセスした後、トップニュース8本の場所を特定するために、「もっと見る」の場所を探し、マウスカーソルをホバーさせます。

1回目のmouseMove()では、ニュースの見出しをコピーできるようにカーソル位置を少し調整します。

マウスの左ボタンを押下した状態で、カーソル移動し、ニュース記事の見出しを選択します。

選択した状態で、Ctrl+cで選択領域のテキストをコピーします。

Ctrl+wではChromeブラウザのタブを閉じます。今回タブが1つだったので、Chromeも終了させることができます。

コピーした情報をメモ帳に貼り付け保存

続いて取得した情報をテキストファイルに保存する処理を行います。

まず、デスクトップに設置したメモ帳のショートカットアイコンをダブルクリックします。

少しだけ待ち時間を設け、Ctrl+vでコピーした情報を貼り付けます。

テキストを貼り付けた後、Ctrl+sでファイル保存を行います。

「test」というファイル名でエンターキーを押して保存します。

sikulixによる自動操作で保存したテキストファイル

以上で、デフォルトの保存場所に、ヤフトピ情報を保存することができました。

 

まとめ・終わりに

今回、sikulixでWebサイトの情報を取得し、テキストファイルで保存する方法を解説しました。

このように情報取得→保存という作業は、単純な作業であることが多いので、人間がするよりもコンピュータに任せるRPAにピッタリの業務内容です。

ただ、この方法では、初回以降は上書き保存になってしまうため、注意が必要です。

毎回重複しないファイル名で保存する方法は次回解説したいと思います。