私はスプレッドシートで家計簿をつけており、ちょくちょくシートを見に行くのですが、どうしてもスマホやタブレットからだと画面が小さい&見づらい。そこで、スプレッドシートの指定したページをスクショしてLINEで通知できたら便利だなと思いました。
スプレッドシートだけでなく、指定したURLのスクリーンショットをとってスプレッドシートに一覧化したり、Google Driveに保存するなど活用の幅が広そうだなと思いました。
そこで今回は、Webサイトのスクリーンショット撮影を自動化する方法を3つ紹介します。
評価基準
Webページを自動でスクショする方法について、以下の内容を踏まえて5段階の評価をします。
- 無料で使えるかどうか
- ノーコード/ローコードで作れるか
- 環境構築・設定が簡単かどうか
Power Automate (手軽さ:★★★★☆)
項目 | 評価 |
---|---|
コスト | 無料 |
手軽さ | ★★★★☆ |
まず初めに、Power Automateを使う方法です。Power Automateは、Windows11に標準搭載されているアプリで、ノーコードで処理を自動化できるRPAツールです。
キャプチャは、「画面全体」か、「特定の要素」を選べます。
拡張子は、BMP、EMF、EXIF、GIF、JPG、PNG、TIFF、WMFから選べます。
PADはPC起動時しか使えない
PADは簡単に自動化を実現できる反面、PCを起動していないと実行できないのが難点です。また、PAD上では定期実行ができないため、定期実行させる場合はWindows標準のタスクスケジューラを使います。
Selenium (手軽さ:★★☆☆☆)
項目 | 評価 |
---|---|
コスト | 無料 |
手軽さ | ★★☆☆☆ |
次に、ブラウザテスト自動化ツール「Selenium」を使ってスクショを撮る方法です。以下はPythonでWebページのスクリーンショットを撮るコードです。
from selenium import webdriver
import chromedriver_binary
import time
URL = 'https://prtn-life.com/blog/gpt4-api'
driver = webdriver.Chrome()
driver.get(URL)
time.sleep(3)
driver.save_screenshot('C:\\chasoTest\\screenshots.png')
driver.close()
普段GASをメインに使っている身としては、ローカルでプロジェクトを管理したり、バージョン更新すら面倒に感じてしまいました(久々にPythonコード実行しようとしたらバージョンのエラーで動かず)。
普段から使い慣れている方なら多分Seleniumが一番楽かなと思います。でも、プログラミング初心者の方や、環境構築したくないという方は次項で説明するAPIをGASで動かすのが良さそうです。
サードパーティ製のAPI (手軽さ:★★★☆☆)
項目 | 評価 |
---|---|
コスト | 無料(枚数制限あり) |
手軽さ | ★★★☆☆ |
以下は全て海外のものになりますが、無料で使えるものをいくつか見つけたので以下に紹介します。
screendot
公式サイト:https://screendot.io/
無料で1,000枚までスクリーンショットをとれるAPIです。メールアドレス、名前、パスワードのみで登録できますので、良心的だと思います。
以下の記事では、実際の登録手順・使い方を紹介されておりとても分かりやすいです。
screenshotapi.io
公式サイト:https://screenshotapi.io/
こちらも1,000枚まで無料でスクリーンショットを撮ることができますが、登録時に住所やフルネームが必要です。
個人情報を入れるのはちょっとなー
海外のものであれば、スクリーンショットをとるAPIはけっこう公開されているようです。しかし、どこの企業か分からないのに個人情報を渡すのはちょっと・・・と思ってしまいました(screendotは実質メールアドレスだけなので良いですが)。
まとめ
今回は、自動でWebページをスクリーンショット撮影する方法について解説しました。
システムのテスト時にエビデンスを残したい場合はSeleniumが定番ですが、電子書籍をPDF化したいならPAD、スプレッドシートとの連携ならGASといったように、目的に応じて使い分けると良さそうです。
それぞれの方法について具体的な方法までは触れていませんが、フローやプログラムを作っていてうまく動作しないという場合にはお気軽にコメントいただければと思います。
コメント