- 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も変わっていたので、あたらしく記載