前回まで、表示されるWebページのHTMLを自動的に取得する方法を解説してきた。今回からは、Webページの表示そのものをスクリーンショットとして取得するPowerShellスクリプトの作成に取り組んでいく。中身ではなく、見た目を自動的に保存しておきたいというケースもあるからだ。すでにこれを実現するための機能はいくつか存在しているので、それらを組み合わせて、Webページのスクリーンショットを自動取得するスクリプトを作成していく。

自動処理の始まりになる「netcat.ps1」

前回までに作成した「netcat.ps1」では、「curl.exe」と「Microsoft Edge」のヘッドレスモードを使ってWebページのHTMLを取得できるようにした。

netcat.ps1の注目ポイントは、Webページを取得する方法としてMicrosoft Edgeを使ったことで、JavaScriptを使ってコンテンツを表示するタイプのWebページにおいてもHTMLの取得ができるようにした点にある。こうした用途ではcurl.exeが使われることが多いのだが、curl.exeはJavaScriptを解釈しない。そのため、JavaScriptがそのまま取得されてしまうのだ。欲しいのは、Webページで閲覧したときのようにJavaScriptを実行した後の状態なので、JavaScriptを理解して実行するMicrosoft Edgeを使って表示されたHTMLを取得するようにした。

このようにしてHTMLが直接得られれば、さらにそこからデータを加工するといった自動処理につなげることができる。自動化の取っ掛かりとしてnetcat.ps1は有益だ。

Webページのスクリーンショットがほしい

Webページの自動取得に欲しくなってくるのが、スクリーンショットの自動取得だ。表示されているコンテンツのHTML自体を得ることはできるようになったわけだが、場合によっては表示されているそのままをスクリーンショットとして自動取得して利用したいことがある。

例えばデータのグラフが含まれたページや、画像データなどが含まれたページなどだ。こうしたページのデータは画像データとしてスクリーンショットを撮り、それをベースに報告書を作成するといったことを行いたいことがある。これまでは手動でこうした処理を行っていたかもしれないが、自動的に取得できればある程度作業を自動化させることができる。業務の作業時間短縮に効果的な方法だ。

具体的な利用方法は、今後PowerShellスクリプトを作っていく上で示してく。

Webブラウザの表示している内容をそのまま画像データで保存したい

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら