プログラムでネットサーフィン!

はじめに

  • このサイトについて

プログラムによるWebページの自動操作方法

  • Webページの自動操作方法

ブラウザを操作するアプリケーションの開発

  • InternetExplorerを操作する
  • Seleniumでブラウザを操作する
  • Playwrightでブラウザを操作する

ブラウザ機能を組み込んだアプリケーションの開発

  • WebBrowserコントロールを使う(VBA)
  • WebView2コントロールを使う(.NET)
  • WebViewコントロールを使う(.NET MAUI)

ブラウザを操作できるアプリケーションを利用する

  • ブラウザのブックマークレット機能を使う
  • Chrome拡張機能を使う
  • Power Automate for desktopを使う

Webサービスを利用する

  • Google App Scriptを使う

その他

  • OS/開発言語別、Web操作方法

InternetExplorerを操作する

準備

  • VisualStudioでInternetExplorerを操作
  • Excel VBAでInternetExplorerを操作

基本的な操作

  • Webページの表示
  • 読み込み待ち
  • 戻る/進む/HP/検索
  • 中止/リロード
  • タイトル/URLの取得
  • InternetExplorerの表示/非常時
  • InternetExplorerの位置/サイズ
  • InternetExplorerのバー操作
  • InternetExplorerの終了処理

HTML要素の指定

  • ページ内のすべての要素にアクセス
  • id属性を指定して要素にアクセス
  • name属性を指定して要素にアクセス
  • class属性を指定して要素にアクセス
  • タグ名を指定して要素にアクセス
  • アンカー要素にアクセス
  • form内の要素にアクセス
  • frame内の要素にアクセス

HTML要素の操作

  • クリック
  • 選択
  • 入力
  • 値の参照
  • submit/reset
  • 属性の参照・設定
  • スタイルの参照・設定

ブラウザ/HTMLイベント処理

  • ブラウザで発生したイベントを処理する
  • プログラムでHTML要素のイベントを発生させる

その他の操作

  • InternetExplorer操作時

WebBrowserコントロールを使う

準備

  • VisualStudioでWebBrowserコントロールを使用
  • Excel VBAでWebBrowserコントロールを使用

基本的な操作

  • Webページの表示
  • 読み込み待ち
  • 戻る/進む/HP/検索
  • 中止/リロード
  • タイトル/URLの取得

HTML要素の指定

  • ページ内のすべての要素にアクセス
  • id属性を指定して要素にアクセス
  • name属性を指定して要素にアクセス
  • class属性を指定して要素にアクセス
  • タグ名を指定して要素にアクセス
  • アンカー要素にアクセス
  • form内の要素にアクセス
  • frame内の要素にアクセス
  • 座標から要素にアクセス

HTML要素の操作

  • クリック
  • 選択
  • 入力
  • 値の参照
  • submit/reset
  • 属性の参照・設定
  • スタイルの参照・設定

ブラウザ/HTMLイベント処理

  • ブラウザで発生したイベントを処理する
  • HTML要素で発生したイベントを処理する
  • プログラムでHTML要素のイベントを発生させる

その他の操作

  • WebBrowserコントロール使用時

WebView2コントロールを使う

準備

  • WebView2コントロールの準備
  • WebView2コントロールでの操作
  • C#/VBアプリケーションとWebページ間のデータ送受信

基本的な操作

  • Webページの表示
  • 読み込み待ち
  • 戻る/進む
  • 中止/リロード
  • タイトル/URLの取得
  • Zoomの取得・設定
  • htmlの取得

HTML要素の指定

  • HTML要素へのアクセス方法について
  • ページ内のすべての要素にアクセス
  • id属性を指定して要素にアクセス
  • name属性を指定して要素にアクセス
  • class属性を指定して要素にアクセス
  • タグ名を指定して要素にアクセス
  • アンカー要素にアクセス
  • form内の要素にアクセス
  • CSSセレクタによる要素へのアクセス
  • 座標から要素にアクセス
  • iframe内の要素にアクセス
  • shadow-root内の要素にアクセス

HTML要素の操作

  • HTML要素へのアクセス方法について
  • クリック
  • 選択
  • 入力
  • 値の参照
  • submit/reset
  • 属性の参照・設定
  • スタイルの参照・設定

ブラウザ/HTMLイベント処理

  • ブラウザで発生したイベントを処理する
  • プログラムでHTML要素のイベントを発生させる

アプリの配布

  • WebView2アプリの配布

その他の操作

  • Web/ネイティブ相互運用機能
  • ブラウザーの機能
  • ページ操作
  • ユーザーデータ
  • 認証
  • 開発
  • その他

WebViewコントロール(MAUI)を使う

準備

  • .NET MAUIの準備
  • WebViewコントロール(.NET MAUI)を使用する

基本的な操作

  • Webページの表示
  • 読み込み待ち
  • 戻る/進む
  • 中止/リロード
  • URL/ローカルhtmlの取得
  • htmlの取得

HTML要素の指定

  • HTML要素へのアクセス方法について
  • ページ内のすべての要素にアクセス
  • id属性を指定して要素にアクセス
  • name属性を指定して要素にアクセス
  • class属性を指定して要素にアクセス
  • タグ名を指定して要素にアクセス
  • アンカー要素にアクセス
  • form内の要素にアクセス
  • CSSセレクタによる要素へのアクセス
  • iframe内の要素にアクセス
  • shadow-root内の要素にアクセス

HTML要素の操作

  • HTML要素へのアクセス方法について
  • クリック
  • 選択
  • 入力
  • 値の参照
  • submit/reset
  • 属性の参照・設定
  • スタイルの参照・設定

WebViewコントロールとWebページの連携

  • WebViewコントロールとWebページの連携
  • C#からWebページのJavaScriptを実行する方法
  • JavaScriptからメッセージを送り、C#で受け取る方法

Seleniumでブラウザを操作する

  • Seleniumによるブラウザーの自動操作

Selenium IDEの使い方

  • インストール
  • ブラウザ操作の記録・自動実行
  • 設定内容の解説と、編集方法

Selenium WebDriverの準備

  • インストール方法
  • インストール方法(Excel VBA)
  • ブラウザの起動
  • 操作サンプルコード

基本的な操作

  • ブラウザ起動
  • Webページの表示
  • 読み込み待ち
  • 戻る/進む/更新
  • タイトル/URLの取得/ソースコードの取得
  • alert/confirm/promptの操作
  • JavaScriptの実行
  • ブラウザ終了

ウィンドウ・タブ操作

  • 新しいウィンドウ・新しいタブの作成
  • 操作対象の切り替え
  • ウィンドウのサイズの参照/設定
  • ウィンドウの位置の参照/設定
  • ウィンドウの最大化/最小化/全画面
  • 終了処理

HTML要素の指定

  • 要素の特定に使用するメソッド
  • id属性を指定して要素にアクセス
  • name属性を指定して要素にアクセス
  • class属性を指定して要素にアクセス
  • タグ名を指定して要素にアクセス
  • アンカー要素にアクセス
  • CSSセレクタによる要素へのアクセス
  • XPathで要素にアクセス
  • form内の要素にアクセス
  • iframe内の要素にアクセス
  • shadow-root内の要素にアクセス

HTML要素の操作

  • クリック
  • 選択
  • 入力
  • 値の参照
  • submit
  • 属性の参照・設定
  • スタイルの参照・設定

その他の操作

  • 各ブラウザ共通
  • Chromeブラウザ

Playwrightでブラウザを操作する

  • Playwrightによるブラウザーの自動操作

準備

  • Node.js/Playwrightのインストール
  • PlaywrightをVSCode拡張機能で使用する
  • PlaywrightをC#で使用する
  • PlaywrightをPythonで使用する
  • ブラウザを操作してコードを自動生成する(Node.js/Python)
  • ブラウザを操作してコードを自動生成する(VSCode)

基本的な操作

  • ブラウザ起動&Webページの表示
  • 読み込み待ち
  • 戻る/進む/リロード
  • タイトル/URL/ソースコードの取得
  • alert/confirm/promptの操作
  • JavaScriptの実行
  • ブラウザ終了

ウィンドウ・タブ操作

  • 新しいウィンドウ・新しいタブの作成
  • ウィンドウのサイズの参照/設定
  • ウィンドウの最大化/最小化/全画面

HTML要素の指定

  • HTML要素へのアクセス方法について
  • CSS/XPathを指定して要素を検索
  • Role(役割)を指定して要素を検索
  • テキストを指定して要素を検索
  • ラベルテキストを指定して要素を検索
  • プレースホルダーを指定して要素を検索
  • 代替テキストを指定して要素を検索
  • タイトルを指定して要素を検索
  • iframe内の要素にアクセス
  • Shadow-root内の要素にアクセス

HTML要素の操作

  • クリック
  • チェック/チェック状態の取得
  • オプション選択/選択内容の取得
  • テキスト入力/入力内容の取得
  • 属性の参照・設定
  • キー入力/ショートカットキー入力
  • ファイルアップロード
  • フォーカス
  • ドラッグ&ドロップ

その他の操作

AngleSharpを使う

準備

  • AngleSharpのインストール

Google Apps Scriptを使う

  • Google Apps Script (GAS)について
  • Google Apps Scriptの始め方
  • GASでhtmlを取得して解析してスプレッドシートに書き込む
  • GASでJsonを取得してhtmlで表示する
  • ページを装飾する
  • グラフを作成して表示する
  • 定期的に自動実行する

ブラウザ操作アプリのつくり方

  • サイトの構成を調べる方法
  • HTMLのデータを取得する方法
  • Yahoo検索
  • Google検索

Web操作テストページ

  • HTML要素の操作関連
  • JavaScript実行関連
  • アクセス情報表示
  • Basic認証用テスト

ブラウザ操作に関する技術メモ

  • IE操作/WebBrowser

問い合わせ・ツール開発依頼

  • 問い合わせフォーム

プロパティ/メソッド一覧

COM版(アンマネージ)

  • document Object
  • IHTMLDocument2
  • IWebBrowser2 Interface

.NET版(マネージ)

  • HtmlDocument
Copyright(c) 2012-2023 プログラムでネットサーフィン All rights reserved