- PageSpeed Insights APIのURLを知る
 - PageSpeed Insights APIを利用してWEBページの情報を取得
 - 取得したスクリーンショットを保存する
 
自動で取得する場合は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も変わっていたので、あたらしく記載