PageSpeed Insights APIを用いて、複数のサイトのスコアを一括取得する(Python)

みなさん、PageSpeed Insightsをご存知だろうか?

このサイトは、ウェブページのコンテンツを解析し、ページの読み込み時間を短くするための方法を提案してくれるwebサイトを作成していく上では欠かせないサイトである。

このサイトは、通常フォームに対してURLを入力することが可能だが、複数サイトまたは複数ページを解析することはできない。
そのため、Google Cloud Platform からAPIを用いることで複数のサイトを一括して計測できるようになる。

Google Cloud PlatformAPIを発行後、以下のソースコードを用いることでデータを取得可能である。

import requests

#指定したいURLをベタ書き or 読み込み
urlList=['http://abehiroshi.la.coocan.jp',
         'https://sakuraihinako.futureartist.net/',
         'http://kaela-web.com/',
         'http://keisuke-honda.com/',
         'http://www.genkisudo.net/',
         'http://www.becky.ne.jp/']

#GETメソッド
get_url='https://www.googleapis.com/pagespeedonline/v4/runPagespeed'

strategy_param='desktop'#モバイルサイト か #PC を指定(mobile or desktop)

api_key='ここにAPIを記述' #api key を指定

payload = {'strategy': strategy_param,'api_key': api_key} #GETメソッドに付帯するパラメータ

for url in urlList:
    urlName=get_url+"?url="+url
    
    result=requests.get(urlName,params=payload)

    result=result.json()#jsonに変換
    resultScore=result['ruleGroups']['SPEED']['score']#Scoreを取り出す
    resultTitile=result['title']#タイトルを取り出す
    
    print(resultTitile,resultScore)

このソースコードでは、サイトのタイトルと点数を出力している。

阿部寛のホームページ  93
桜井日奈子 Official Fanclub 7
木村カエラ | KAELAWEB 0
本田圭佑オフィシャルWEBサイト - Keisuke Honda Official Website 23
不要な食器がお金に変わりました|テーブルウェアショッピング 90
ベッキーオフィシャルウェブサイト 14

どうでもいいけど、やっぱ阿部寛のホームページの速度は異常だね。