今回Excel VBAを用いたChromeでのWebスクレイピングを勉強しました。もちろんPower Automate Desktopを使った方法も確認しましたのでその備忘録も含めてまとめて記載します。
結論としては拡張機能を入れることで「Webブラウザの起動」「ログイン操作」「必要事項の入力」などが非常に簡単にできます。日常作業の効率化にも役立ちますのでぜひ試してみてください。
この記事の構成
Webスクレイピングにおいては以下の3つが基本になります。
- ブラウザ操作
- 取得
- 入力
Chromeを使う際は拡張機能をいれる必要がありますのでまずはそちらを説明します。
事前準備
Power Automate DesktopでGoogle Chromeを操作するためには、Google Chromeに拡張機能を入れる必要があります。新規フローを作成した後の手順は以下です。
- ツールをクリック
- ブラウザー拡張機能を選択
- Google Chromeをクリック
4. Microsoft Power AUtomateをインストールする
これで完了です。
ブラウザ操作
新しいChromeを起動する(新しいインスタンスの作成)
「新しいChromeを起動する」を選択します。
- 起動モード・・・「新しいインスタンスを起動する」を選択します
- 初期URL・・・希望のURLを入力します
- ウィンドウの状態・・・「標準」「最大化」「最小化」から選択します
- 詳細・・・必要な情報を選択します
新しいChromeを起動する(実行中のインスタンスに接続する)
上記の操作ではその後操作できるのは作成されたウィンドウのみになります。
操作中に新しいタブに移ったり別のタブで操作をしたいことがあると思います。その際は以下の操作を行います。
「新しいChromeを起動する」を選択します。
- 起動モード・・・「実行中のインスタンスに接続する」を選択する
- Chromeタブに接続する・・・「フォアグラウンド ウィンドウを使用」を選択すると実行中のタブに移ることができます。自動化中に新しいタブが作成されたときに有効です。
「タイトルを使用」は実行後のサイトのタイトルを取得しておくと後で戻ることが可能です。タイトルの取得は別で行います。「URLを使用」は直接URLを入力します。
取得
Webページ上の要素の詳細を取得
Power Automate Desktopにおける要素の取得は視覚的でわかりやすいです。
以下の方法でYahooのサイトの天気・災害の文字列を取得します。
「Webページ上の要素の詳細を取得します」を選択します。
- Webブラウザーインスタンス・・・操作するブラウザを選択します。
- UI要素・・・クリックすると「新しいUI要素の追加」というボタンが表示されるのでクリックします。以下の方法で要素を取得します。
- 取得したい要素の上にカーソルを合わせCTRLを押しながらクリックします。
- 取得できた要素が文字列で表されますのでクリックします。
- 表示されたイメージとあっていれば「完了」をクリックします。
- 属性名・・・取得する内容を選択します。
「Own Text」は文字列、「Title」はリンクのタイトルとなります。
このようにしてブラウザ内の情報を取得できます。
入力
Webページ内のテキストフィールドに入力する
以下のようにYahooの検索フィールドにテキストを入力することを想定します。要素を取得してテキスト入力するだけです。
「Webページ内のテキストフィールドに入力する」を選択します。
- Webブラウザーインスタンス・・・操作するブラウザを選択します。
- UI要素・・・「取得」のところで記載した方法で要素を取得します。
- テキスト・・・入力したい内容を記載します。
- 詳細・・・必要にあわせてチェックを入れます。
結果として以下のように「Power Automate Desktop」が入力されます。
Webページ内をクリックする
Webページ内をクリックするフローは
「Webページのチェックボックスの状態を設定します」
「Webページのラジオボタンを選択します」
「Webページのボタンを押します」がありますが
どれも同じような方法で操作できます。
今回は例として「Webページのチェックボックスの状態を設定します」で説明します。
- Webブラウザーインスタンス・・・操作するブラウザを選択します。
- UI要素・・・「取得」のところで記載した方法で要素を取得します。
- チェックボックスの状態・・・「オン」あるいは「オフ」を選択します。
Webページ内のドロップダウンリストの値を設定する
クリックすると選択肢が現れるドロップダウンリストについては「Webページ内のドロップダウンリストを選択する」で操作が可能です。
例として以下のサイトで地点を「北海道」「網走」に変更してみます。
月の位置計算-高精度計算サイト月の位置計算日本の各観測地点での指定日の月の位置を計算し、高度をグラフ表示します。
まずは名前を取得して変更する方法を示します。
「Webページ内のドロップダウンリストを選択する」を選択します。
- Webブラウザーインスタンス・・・操作するブラウザを選択します。
- UI要素・・・「取得」のところで記載した方法で要素を取得します。
- 操作・・・「名前を使ってオプションを選択します」を選択します。
- オプション名・・・「ドロップダウンリスト」にある名称を記載します。
次にインデックスを取得して変更する方法を示します。
「Webページ内のドロップダウンリストを選択する」を選択します。
- Webブラウザーインスタンス・・・操作するブラウザを選択します。
- UI要素・・・「取得」のところで記載した方法で要素を取得します。
- 操作・・・「インデックスを使ってオプションを選択します」を選択します。
- オプション名・・・「ドロップダウンリスト」にある名称について上から何番目にあるかで記載します。網走は4番目にあるので4と記載します(最初は1です)。
結果として以下のように「北海道」と「網走」が得られます。
■ここでのまとめ
Power Automate Desktopでは拡張機能を入れることでWebスクレイピングも可能です。これらの操作を使って入力を自動化できれば作業も効率化できると思います。ぜひ使ってください。
追記
もしVBAに興味を持たれた方はこちらの記事もどうぞ。初めての方でも挫折することなく勉強できる書籍です。
コメント