テレットブログ

【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

JQUERY セレクター ボタンで変化編

2022年03月09日
Jqueryは大変便利なjavascriptのライブラリです。 フロント側
Read more →
image

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

2021年10月07日
前回の記事でセキュリティ上、httpsにのみ対応する。というセッション問題解決が
Read more →
image

Codeigniter3 PHP8環境だとセッションflashdataが消えない

2021年10月01日
CodeIgniterは、PHPのフレームワークであり、非常に簡単で快速で、We
Read more →
image

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

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

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

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