テレットブログ

【PHP】 GoogleのPagespeed APIを利用してWebページのスクリーンショットを取得

2020年06月03日
image
WEBページのスクリーンショットを取得する方法
 
  1. PageSpeed Insights APIのURLを知る
  2. PageSpeed Insights APIを利用してWEBページの情報を取得
  3. 取得したスクリーンショットを保存する
わずか3ステップでスクリーンショットが撮れてしまいます。
自動で取得する場合はCronにでもいれて自動巡回させるとさらに便利です。

 

PageSpeed Insights APIのURLを知る


PageSpeed Tools のサイトに記載されていますので、みてみましょう。
URL

APIキーも設定できますが、省略可です。

引用:

PageSpeed Insights API を試すだけであれば、API キーは不要です。自動化した方法で API を使用して、1 秒間に複数回クエリを作成する予定であれば、API キーが 1 つ必要です。

PageSpeed Insights API URL

https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://developers.google.com
?url= (取得したいWEBサイトのURL)


PageSpeed Insights APIを利用してWEBページの情報を取得

 

PHPでfile_get_contents()

を利用して取得します。
取得するとjsonで返されますのそれよりbase64データをの位置より取得します。
途中PHPのbase64_decodeには不要な文字列が入ってしまうので、除去。

取得までのソースは下記
<?php

        private function googleapi_pagespeedonline($sites){

   

                if($image = @file_get_contents("https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=$sites&screenshot=true")){

                        //ここにコンテンツの取得が成功した場合の処理

                        $image = json_decode($image, true);



                        $image = $image["lighthouseResult"]["audits"]["final-screenshot"]["details"]["data"];

                        $data = preg_replace('#^data:image/\w+;base64,#i' , '' , $image);

                        $fileData = base64_decode($data);

                

                        return $fileData;



                }else{

                    //エラー処理

                    return false;

                    exit;

                }



?> 

 

取得したスクリーンショットを保存する

  <?php
        private function save_image($fileData,$filename) {

            $save_file='./dist/siteimg/'.$filename.'';

            //特定のディレクトリーにファイルを保存する

            file_put_contents($save_file,$fileData);

        }

<?php

PageSpeed Insights APIですが
version2で取得していたのですが、いまやversion5になっていました。
それにともない、スクリーンショットURLも変わっていたので、あたらしく記載
 


新着記事

image

CodeIgniter3でリダイレクトでセッション消える

2020年10月28日
テストサーバ(http)にて確認していると 管理画面ではセッションが空に!
Read more →
image

防衛省、サイバーセキュリティ担当の防衛技官を募集中月給30万円

2020年10月16日
 防衛省が、サイバーセキュリティに従事する防衛技官を募っている。自衛隊のシステム
Read more →
image

Amazon Echo Auto アマゾンエコーオート 開封&利用一週間レビュー

2020年10月08日
早速アマゾン・エコーオートを購入して車に取り付けて利用してみました! 報道
Read more →
image

【Amazon】アマゾン 年に1度のプライムデー開催情報

2020年10月06日
Amazon プライムデーが開催されます Amazonプライムデー
Read more →
image

Amazonの車載デバイス「Echo Auto」が発売!

2020年10月01日
「OK Google」「Hi Siri」「Hi Mercedes」といった音声に
Read more →
Choose Colour