VBSでのブラウザ操作でIEが利用されているわけ
VBSでのブラウザ操作でIEが利用されているわけ
ブラウザとしては開発も終わったIEですが、スクレイピングを含めたシステム自動化ではとてもよく利用されています。
その理由はVBS(VBA/VBE)との親和性の高さです。
例えば、IEを使うとBusyで読込中か否かを取得して読込が完了したら他の動作を行うなどの操作が出来るようになります。
SETしたオブジェクトに対して「プロパティ―で知る事の出来る情報量が他のブラウザと比べて多い」のが今でもIEが利用される理由の一つです。
IEで利用できるプロパティの具体例
プロパティ | データ型 | 内容 |
---|---|---|
Application | Object | アプリケーションオートメーションオブジェクトにアクセス可能であれば、そのオートメーションオブジェクトを返す。 |
Visible | Boolean | アプリケーションの表示・非表示を設定します。 |
Busy | Boolean | Webページが読み込み中かどうかを示す。 |
ReadyState | tagREADYSTATE | IEオブジェクトのドキュメントの読み込み状態を示します。 |
document.readyState | tagREADYSTATE | IEのdocumentオブジェクトの読み込み状態を示します。 |
Top | Long | InternetExplorerウィンドウの垂直位置(ピクセル)を設定します。 |
Left | Long | InternetExplorerウィンドウの水平位置(ピクセル)を設定します。 |
Width | Long | InternetExplorerウィンドウの幅(ピンクセル)を設定します。 |
Height | Long | InternetExplorerウィンドウの高さ(ピンクセル)を設定します。 |
AddressBar | Boolean | アドレスバーを表示・非表示させます。 |
MenuBar | Boolean | メニューバーを表示・非表示に設定。 |
StatusBar | Boolean | ステータスバーを表示・非表示に設定。 |
ToolBar | Long | ツールバーが表示されているのを制御。 |
FullScreen | Boolean | ウィンドウを最大化し、ステータスバー、ツールバー、メニューバー、およびタイトルバーを非表示に設定。 |
TheaterMode | Boolean | InternetExplorerのシアターモードを設定。 |
Resizable | Boolean | ウィンドウサイズ変更の可否を設定。 |
Offline | Boolean | オブジェクトがオフラインモードで動作しているかを示す値を取得。 |
RegisterAsBrowser | Boolean | オブジェクトがトップレベルのブラウザウィンドウとして登録されているかどうかを示す値を取得。 |
RegisterAsDropTarget | Boolean | オブジェクトがナビゲーションのためのドロップターゲットとして登録されているかどうかを示す値を取得。 |
Silent | Boolean | 任意のダイアログボックスを表示することかどうかを設定。 |
TopLevelContainer | Boolean | 指定したオブジェクトがトップレベルのオブジェクトである場合にTrueを返却。 |
HWND | Long | 指定したInternetExplorerのHWNDを返却。 |
Container | Object | コンテナ/親へのオブジェクト参照を取得。 |
Document | Object | 指定したドキュメントを返却。 |
Parent | Object | コンテナ/親が存在する場合は、そのオートメーションオブジェクトのオートメーションオブジェクトを返却。 |
Path | String | InternetExplorerアプリケーションのフォルダパスを返却。 |
FullName | String | InternetExplorerアプリケーションのファイルパスを返却。 |
Name | String | アプリケーションの名前を返却。 |
LocationName | String | 指定したページのタイトルを取得。 |
LocationURL | String | 指定したページのURLを取得。 |
StatusText | String | ステータスバーのテキストを取得。 |
Type | String | 含まれているドキュメントオブジェクトの型を返却。 |
プロパティの指定だけでこんな情報を取得する事が出来ます。
同じことはchromeなどのブラウザでも出来るが回り道が必要になる
同様の情報、他のブラウザでも取得は可能です。
でも、いくつか回り道して情報を取る形になってきます。
出来ないことはない、でもコードが長くなってミスや予期せぬ事態が増えます。
コードはシンプルな方が良いですもんね。
まとめ
IEでもBusyを取れない事があります。
クローラー対策も含めてJSでゴリゴリに組んだページなどでこういった課題は顕著に出てきます。
出来ると思って過信はしちゃだめですね。
-
前の記事
キーワード自動挿入機能を運用して1年。今見えてきている課題 2020.09.07
-
次の記事
楽天RMSログイン処理をPHPのGoutteで組んでみたけど意味がなかった 2020.09.09
コメントを残す