HITTOBITO

仕事

WEB制作を効率化する (1) – 大量のスクリーンショット 第1回

2017年12月12日 

わかば

WEBサイトのスクリーンショットが大量に必要になるときないですか?

最近は、ブラウザの拡張ツールも充実していて、1 ページつづなら簡単に取れますね。

しかし、500ページ、1,000ページとかになると、ちょっと心が折れそうです。

今回は、この手順を自動化してみたいと思います。

この記事の内容を実行するのに必要な要件

Windows 10 pro 64bit
chrome 63
Excel 2016

※今回はこの環境ですが、他の環境でも、カスタマイズすれば動くと思います。

やってみよう

色々検索してみると、いろんな手法でチャレンジしている人がいたのですが、google chrome をコマンドプロンプトから利用するのが簡単そうです。

とりあえず、キャプチャしてみます。

たとえば、弊社のホームページのキャプチャを C:\01\top.png に保存するには、コマンドラインから以下のように実行します。

"c:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --headless --disable-gpu --hide-scrollbars --screenshot=c:\01\top.png --window-size=1024,2048 http://www.f-hit.com"

prompt

できた、素晴らしく簡単です。

こちらのコマンドについては、詳しくはこちらの記事を参考にしてください。
外部リンク / ヘッドレス Chrome ことはじめ

自動化する

自動化する、つまり、連続してキャプチャするには、URL と ファイル名の部分を変更しながら、google chrome を繰り返し実行できればいいわけですね。

今回は、EXCEL でやってみたいと思います。

A列に「ファイル名」を、B列に「URL」したシートを作成して、そのシートに、以下の VBA コードを書きます。

excel

ソースコード

Function capture()

    Dim cmd As String

    For i = 1 To 4
        cmd = ""
        cmd = cmd & "c:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
        cmd = cmd & " --headless"
        cmd = cmd & " --disable-gpu"
        cmd = cmd & " --hide-scrollbars"
        cmd = cmd & " --screenshot=c:\01\" & Cells(i, 1) & ".png"
        cmd = cmd & " --window-size=1024,2048"
        cmd = cmd & " " & Cells(i, 2)
        rc = Shell(cmd, vbHide)
        Debug.Print i & "-" & Now
        Application.Wait Now + TimeValue("0:00:05")
        DoEvents
    Next

End Function

これを、実行すると、C:\01 フォルダに 4ページ分のキャプチャができています。

explorer

途中、Application.Wait Now + TimeValue("0:00:05") を指定しますが、これで 5 秒間隔の実行になります。

キャプチャの都度サーバーにアクセスすることになるので、キャプチャ取得対象のサーバーに負荷かけないように、5秒間隔で実行するようにします。

今回の記事では、キャプチャサイズが 1024×2048 で固定されてしまうので、ページによってサイズを可変にできるように、今後、改善してみたいと思います。

  • このエントリーをはてなブックマークに追加
  • このエントリーをはてなブックマークに追加

この記事を書いた人

  • よっしー

    よっしー

    ディレクター (東京支社)

    ディレクター

    (東京支社)

    田畑では愛車トラクターを乗りこなし、米も作る農家が本業というIT系ファーマー、いや、ファーマー系エンジニア? こだわりのあるモノ作りが得意。野菜とWEBの旬な情報はお任せ! 新しい技術やサービスは、まず自ら使ってみる事をモットーにしているプロジェクトマネージャー。WEB制作だけではなく、ネットワーク/サーバー、システム開発まで幅広く網羅。

    田畑では愛車トラクターを乗りこなし、米も作る農家が本業というIT系ファーマー、いや、ファーマー系エンジニア? こだわりのあるモノ作りが得意。野菜とWEBの旬な情報はお任せ! 新しい技術やサービスは、まず自ら使ってみる事をモットーにしているプロジェクトマネージャー。WEB制作だけではなく、ネットワーク/サーバー、システム開発まで幅広く網羅。

この人が最近書いたものを見る

一覧

これを読んだ人にオススメ

ひっとびととは?

WEB制作・プロデュース会社『フューチャーヒット』の人々が趣味などをゆるく紹介するサイトです。
フューチャーヒットの「人々」が自由に、でも真剣に取り組んでいく様子をこの「ひっとびと」を通してお届けしていければと思います。

詳細はこちらから