デスクワークを超絶快適にするおすすめギアたち詳しく見る

【誰でも】スクレイピングでWebサイトの表からデータを抽出する方法!

目次

Power Automate for desktopでスクレイピング

無料のツールPower Automate for desktopなら誰でも簡単にスクレイピング(Webブラウザー操作の自動化)することができます。

Webページの表(HTMLテーブル)からデータを抽出する方法!

じょじお

この記事では次の2つの方法でWebページの表データを抽出します。

  • テーブル全体を抽出する
  • テーブルの一部の列を抽出する

テーブル全体を取得する方法

STEP
「新しいMicrosoft Edgeを起動する」アクションを追加します。
Power Automate for desktop

▲パラメータを入力します。

  • 起動モード:新しいインスタンスを起動する
  • 初期URL:https://race.netkeiba.com/race/result.html?race_id=202206010601&rf=race_list
  • ウィンドウの状態:標準
STEP
「Webページからデータを抽出する」アクションを追加します。

「ライブWebヘルパーの使い方」

Power Automate for desktop

▲「ブラウザー自動化」グループの中の「Webデータ抽出」の中の「Webページからデータを抽出する」が起動します。

Power Automate for desktop

▲「Webページからデータを抽出する」アクションの設定画面が開きます。この画面が開いた状態でブラウザでターゲットとなるWebページを開きましょう。

Power Automate for desktop ライブWebヘルパー

▲Webページを開きますと、図のように「ライブWebヘルパー」画面が開きます。「ライブWebヘルパー」はデータ抽出系アクションの補助をしてくれる役割の画面です。

Power Automate for desktop ライブWebヘルパー

▲上の図を参考に下記の手順で操作します。

  1. ライブWebヘルパーが開いた状態でデータを抽出するテーブルの中の要素にマウスカーソルをあわせます。
  2. マウスカーソルを合わせると赤い枠線が表示されます。その状態で右クリックします。
  3. 右クリックメニューの中の「HTMLテーブル全体を抽出する」アクションを追加します。

赤枠がなかなか表示されない場合は、ブラウザー内の何もない適当なところをクリックしてブラウザーをアクティブ状態にしてからもう一度マウスカーソルを合わせてみてください。

Power Automate for desktop ライブWebヘルパー

▲ライブWebヘルパーにテーブルデータが自動認識されます。取得できているっぽいのでライブWebヘルパーの右下の「終了」ボタンをクリックします。

Power Automate for desktop ライブWebヘルパー

▲「Webページからデータを抽出する」アクションの設定画面をもう一度見てみましょう。「抽出されるデータの概要」のところにHTMLテーブルが設定されたことがわかります。この文言が確認できたら「Webページからデータを抽出する」アクションのパラメータを下記のように設定して「保存」をクリックして画面を閉じます。

  • Webブラウザーインスタンス:%Browser%
  • データ保存モード:Excelスプレッドシート

データ保存モードはExcelに出力するか、変数に保存するかを選択します。後続のアクションに渡す場合は変数にした方が扱いやすいかと思います。今回はテストなのでExcelに出力してみたいと思います。

STEP
フローを実行してみます。
Power Automate for desktop

▲フローが完成したので「フロー実行」ボタンをクリックして実行します。

▲フローを実行するとブラウザーが自動で開いたあとにExcelが開きます。ExcelにはWebページのテーブルの情報が入力されていました。

ぽこがみさま

たった2つのアクションでExcelに書き出しまでしてくれるのすごいですね!

Robinソースコード

WebAutomation.LaunchEdge.LaunchEdge Url: $'''https://race.netkeiba.com/race/result.html?race_id=202206010601&rf=race_list''' WindowState: WebAutomation.BrowserWindowState.Normal ClearCache: False ClearCookies: False Timeout: 60 BrowserInstance=> Browser
WebAutomation.ExtractData.ExtractHtmlTableInExcel BrowserInstance: Browser Control: $'''html > body > div:eq(0) > div:eq(3) > div:eq(1) > div:eq(0) > table''' ExtractionParameters: {[$'''着
順''', $'''枠''', $'''馬
番''', $'''馬名''', $'''性齢''', $'''斤量''', $'''騎手''', $'''タイム''', $'''着差''', $'''人
気''', $'''単勝
オッズ''', $'''後3F''', $'''コーナー
通過順''', $'''厩舎''', $'''馬体重
(増減)'''], [$'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $''''''] } ExcelInstance=> ExcelInstance

▲フローデザイナーにコピペすることで今回作成したフローを再現できます。

テーブルの一部を抽出してカスタムテーブルを作成する方法

じょじお

今度はテーブルを丸ごと取得するのではなく、必要な列だけを抽出してカスタムしたテーブルをExcelにダンプしてみたいと思います。

ぽこがみさま

こちらの場合も特にむずかしくはないです。

STEP
先程作成したテーブル全体を抽出するフローを開き、「Webページからデータを抽出する」アクションの設定画面を開きます。
Power Automate for desktop

▲先程作成したアクションを流用したいと思います。「Webページからデータを抽出する」アクションをダブルクリックして設定画面を開きましょう。

Power Automate for desktop

▲設定画面が開きました。この画面を出したままブラウザーに切り替えます。

STEP
設定画面が表示された状態でブラウザーでターゲットWebサイトを開きます。
Power Automate for desktop ライブWebヘルパー

▲「Webページからデータを抽出する」アクションの設定画面を開いたままの状態で、ブラウザーを開くと再び「ライブWebヘルパー」が開きます。

STEP
ライブWebヘルパーが開くので設定済みの内容をリセットします。
Power Automate for desktop ライブWebヘルパー

▲「ライブWebヘルパー」には先程の設定が残っていますので削除したいと思います。画面上部の「リセット」という文言をクリックします。

Power Automate for desktop ライブWebヘルパー

▲リセットできました。

STEP
「着順」を取得します。
Power Automate for desktop ライブWebヘルパー

▲「着順」を取得します。

  1. 着順の中のデータにカーソルを合わせて赤い枠線が表示されることを確認して右クリックします。
  2. 右クリックメニューの中の「要素の値を抽出」>「テキスト」をクリックします。
Power Automate for desktop ライブWebヘルパー

▲ライブWebヘルパーを確認すると、着順1位の部分の要素を取得したので「1」が認識されています。

Power Automate for desktop ライブWebヘルパー

▲もう一度ブラウザーに戻り先程と同様の手順で今度は着順「2」の部分で右クリック>「要素の値を抽出」>「テキスト」をクリックします。

Power Automate for desktop ライブWebヘルパー

▲ライブWebヘルパーをみてみます。着順を「1」と「2」の2つ取得操作しただけですが自動的に3移行の着順もすべて取得してくれています。このように連続データを取得する場合は2回同じ操作をすればそれ以降は自動認識してくれます。ライブWebヘルパー便利です。

「着順」列の取得操作は以上です。

STEP
「馬名」を取得します。
Power Automate for desktop ライブWebヘルパー

▲続いて「馬名」列を抽出する設定を行います。

  1. 馬名のデータにカーソルを合わせて赤い枠線が表示されたら右クリックします。
  2. 右クリックメニューの中の「要素の値を抽出」>「テキスト」をクリックします。
Power Automate for desktop ライブWebヘルパー

▲ライブWebヘルパーを確認します。馬名に関しては1回取得操作をしただけですが、すべての馬名データを認識してくれました。

Power Automate for desktop ライブWebヘルパー

▲列名がValue#というわかりにくい名前なので変更します。変更するにはライブWebヘルパーの列名の部分をダブルクリックします。

以上で列の抽出は完了です。フローデザイナーに戻りましょう。

STEP
Power Automate for desktop ライブWebヘルパー

▲「Webページからデータを抽出する」アクションの設定画面に戻ります。先程はExcelに出力したので今回は変数に出力してみたいと思いますので「データ保存モード」の値を「変数」にしました。

STEP
フローを実行します。
Power Automate for desktop

▲フローを実行します。フロー実行後「DataFromWebPage」変数の中身を確認します。

Power Automate for desktop

▲「DataFromWebPage」変数の中に順位と馬名だけが抽出されたデータを取得できました。

Robinソースコード

WebAutomation.LaunchEdge.LaunchEdge Url: $'''https://race.netkeiba.com/race/result.html?race_id=202206010601&rf=race_list''' WindowState: WebAutomation.BrowserWindowState.Normal ClearCache: False ClearCookies: False Timeout: 60 BrowserInstance=> Browser
WebAutomation.ExtractData.ExtractTable BrowserInstance: Browser Control: $'''html > body > div:eq(0) > div:eq(3) > div:eq(1) > div:eq(0) > table > tbody > tr''' ExtractionParameters: {[$'''td:eq(0)''', $'''Own Text''', $'''''', $'''順位'''], [$'''td:eq(3)''', $'''Own Text''', $'''''', $'''馬名'''] } ExtractedData=> DataFromWebPage

まとめ

じょじお

Power Automate for desktopでWebページの表(HTMLテーブル)からデータを抽出する方法について学習しました。

ぽこがみさま

このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!

Power Automate学習教材

Power AutomateをKindleで学びたい方はコチラ

▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。

Power Automate for Desktopの基本をしっかり学習するのにオススメです。RPA界隈では有名なRPAエンジニア集団である『ロボ研』さんが監修されている解説書です。テスト用の業務Webシステム/デスクトップ業務アプリを使いながら実践形式で学習できる点が一番のメリットかなぁと思います。

Power Automate クラウドフローの入門書です。日本語の解説書は数少ないのでレアかと思います。変数の解説から代表的なアクションの解説がされているので初心者におすすめの本です。

Microsoft 365/ Power Automate / Power Platform / Google Apps Script…

Power Automateを動画で学びたい方はコチラ

▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。

この記事が気に入ったら
フォローしてね!

シェアしてくれたらウレシイ(·:゚д゚:·)
  • URLをコピーしました!
  • URLをコピーしました!
目次
閉じる