初めてのPython!PageSpeed Insights APIを使ってウェブデータを取得する方法



このブログでは、初めてのPythonプログラミングをWindows11で試み、Google PageSpeed Insights APIを利用して、ウェブサイトのパフォーマンスデータを取得する方法を紹介します。

Pythonの環境設定からGoogleスプレッドシートへのデータ出力まで、一連のステップを解説。指標の追加やスプレッドシートの出力を行から列に変える方法も紹介します。

なお今回の試行では、MicrosoftのAIコンパニオン、Copilotのサポートを受け、初めてのPythonプログラミングとスクレイピングを成功させることができました。この経験を共有することで、読者の皆さんにも安心して取り組んでいただけるようにしました。

ウェブサイトのパフォーマンス向上に役立つ実践的な内容を学びたい方や、初めてPythonに挑戦する方にぴったりの内容です。ぜひ最後までお読みいただき、皆さんのプロジェクトに役立ててください😊

1. 準備編:PythonとAPI

Pythonスクリプトを作成して実行できるように、PythonとPythonライブラリをインストールします。

Pythonをインストール

Pythonの公式サイトから最新版をダウンロード。

②ダウンロードしたファイルを実行。インストール時に「Add Python to PATH」にチェックを入れます。

Pythonのライブラリをインストール

①Windows11のコンソールを開き、画面の下部「検索」バーに「cmd」を入力します。

②検索結果から「コマンドプロンプト」を選択して「Enter」キーを押下します。

③以下のコマンドを入力し、「Enter」キーを押下して実行します。

 pip install requests gspread 

Google Cloud Consoleを設定

収集したデータを Googleドライブのスプレッドシートに保存するため、Google Drive とGoogle Sheets APIを有効にし、サービスアカウントキーを作成してダウンロードします。このキーを使ってスプレッドシートにアクセスします。

Google Cloudを利用するため、Googleアカウントを持っている上、支払情報を登録してある必要があります。

*Google でのお支払いに関する情報の管理

①Google Cloud Consoleにログイン

②プロジェクトを選択

新しいプロジェクトを作成する場合は「新しいプロジェクト」をクリックして作成します。

③スプレッドシートAPIを有効にする

左上の三本線「ナビゲーションメニュー」から Cloudの概要>ダッシュボード を選択します。

  1. 「APIの概要に移動」を選択し、左側のメニューから「APIとサービス」を選択します。
  2. 「APIとサービスを有効にする」をクリックし、検索バーに「Google Sheets API」を入力し、検索結果からGoogle Drive APIを選択します。
  3. Google Drive APIの詳細ページで「有効にする」ボタンをクリックします。同様に、検索バーに「Google Sheets API」を見つけ、有効にします。

④サービスアカウントキーを作成

Google Sheets APIへのアクセスを認証するために、サービスアカウントキーを作成します。

  1. 左上の三本線「ナビゲーションメニュー」から Cloudの概要>ダッシュボード を選択します。
  2. 「プロジェクトの設定に移動」をクリックし、左側のメニューから「IAM」を選択します。
  3. 左側のメニューを下にスクロールし、「サービスアカウント」をクリックし、「サービスアカウントを作成」をクリックします。
  4. 必要な情報(サービスアカウント名、説明など)を入力し、作成をクリックします。
  5. 作成したサービスアカウントを選択し、「鍵」タブをクリックします。
  6. 「キーを作成」をクリックし、「キーの種類」(JSON形式)を選択して作成をクリックします。
  7. サービスアカウントキーを保存:生成されたJSONファイルが自動的にダウンロードされます。このファイルを安全な場所に保存します。例えば、「C:\path\to\your\service_account_key.json」に保存します。
 pip install requests gspread 

⑤APIキーを作成

APIを利用するための認証情報を作成します。

  1. Google Cloud Consoleにログイン
    https://console.cloud.google.com/
  2. プロジェクトを選択:使用しているプロジェクトを選択します。
  3. 左上の三本線「ナビゲーションメニュー」から Cloudの概要>ダッシュボード を選択します。
  4. 「APIの概要に移動」を選択し、左側のメニューから「APIとサービス」を選択します。
  5. 左側のナビゲーションメニューから「認証情報」をクリックします。
  6. 「認証情報」タブで「認証情報を作成」ボタンをクリックし、「APIキー」を選択します。
  7. 「API の制限」で「キーを制限」を選択し、「PageSpeed Insights API」を選択して「保存」をクリックします。
  8. 作成したAPIキーをテキストエディタにコピーします。(後ほど Pythonスクリプトを作成する時に利用します)

「PageSpeed Insights API」が選択肢に表示されない場合

PageSpeed Insights API がプロジェクトで有効になっているか確認します。

  1. Google Cloud Consoleにログイン。
  2. プロジェクトを選択。
  3. APIとサービス > ダッシュボードを選択。
  4. 「APIとサービスを有効にする」ボタンをクリック。
  5. 「PageSpeed Insights API」と検索し、該当するAPIを見つけます。
  6. APIが無効の場合は「有効にする」をクリックして有効にします。

スプレッドシートにアクセス権限を付与

取得したデータをGoogleスプレッドシートに出力するため、スプレッドシートにアクセス権限を付与します。

①スプレッドシートを開く

対象のスプレッドシートを開きます。またはスプレッドシートを新規作成し、スクリプトで使いやすいファイル名を付けます。

②共有ボタンをクリック

画面右上の「共有」ボタンをクリックします。

③サービスアカウントのメールアドレスを追加

サービスアカウントのメールアドレスを入力し、権限を「編集者」に設定して追加します。

④変更を保存

変更を保存します。これで、サービスアカウントにスプレッドシートへのアクセス権が付与されました。

2. 実践編:Pythonスクリプトの作成と実行

VSCode等のテキストエディを使ってPythonスクリプトを作成し、ファイル拡張子「.py」で保存します。

スクリプトの実行は、Windows11のコンソールを使って行います。

以下のコマンドは、Pythonスクリプト pagespeed_to_sheets.py を実行するものです。

python pagespeed_to_sheets.py

1. スクリプトの構成

Google PageSpeed Insights APIを利用し、ウェブサイトのパフォーマンスデータを取得し、Googleスプレッドシートに書き込みます。

以下は、その3ステップです。

  1. PageSpeed Insights APIへのリクエストを作成
  2. PageSpeed Insights からデータを取得
  3. 取得データをスプレッドシートに出力

以下はコード例です。

import requests
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# PageSpeed Insights APIのURLとAPIキー
api_url = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed"
api_key = "YOUR_API_KEY"  # Google Cloud Consoleで取得したPageSpeed Insights APIのAPIキーを入力

# 調査するウェブサイトのURL
website_url = "https://example.com" # 対象ウェブサイトのURLを入力

# PageSpeed Insights APIを呼び出してデータを取得
params = {
	"url": website_url,
	"key": api_key,
	"strategy": "mobile"  # "mobile"または"desktop"を指定
}
response = requests.get(api_url, params=params)
data = response.json()

# APIレスポンス全体を出力(デバッグ用)
print(data)

try:
	lighthouse_score = data["lighthouseResult"]["categories"]["performance"]["score"] * 100
	except KeyError:
	print("Error: 'lighthouseResult' key not found in API response.")
	lighthouse_score = None

	if lighthouse_score is not None:
		# Google Sheets APIの認証設定
		scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
        
		# JSONファイルのパスを入力
		credentials = ServiceAccountCredentials.from_json_keyfile_name("path/to/your/service_account_key.json", scope) 
		client = gspread.authorize(credentials)

		# スプレッドシートにデータを書き込む
		spreadsheet = client.open("Your Spreadsheet Name") # スプレッドシートのタイトルを入力
		worksheet = spreadsheet.sheet1

		# スプレッドシートの次の空き行にデータを追加
		next_row = len(worksheet.get_all_values()) + 1
		worksheet.update_cell(next_row, 1, website_url)
		worksheet.update_cell(next_row, 2, lighthouse_score)

		print(f"PageSpeed Insightsのスコア: {lighthouse_score}") 
	else:
		print("スコアを取得できませんでした。")

JSONファイルのパス

保存したサービスアカウントキー(JSON)は、Google Sheets APIへのアクセスを認証するために使います。

パスの入力は、例えば、サービスアカウントキーを「C:\path\to\your\service_account_key.json」に保存した場合、以下のように指定します。

"C:/path/to/your/service_account_key.json"

スプレッドシート名の確認方法

  1. Google Sheetsを開いて、目的のスプレッドシートを開きます。
  2. スプレッドシートのタイトル(画面左上のタイトル部分)を確認します。このタイトルが、Pythonコード内で使用する名前となります。

2. エラーと解決方法

作成したスクリプトをコンソールで実行し、出力された APIレスポンス全体(data)と「PageSpeed Insightsのスコア」を確認します。

エラーが発生している場合、エラー内容を確認します。

Error: 'lighthouseResult' key not found in API response.

原因

Google Drive APIが有効化されていない

解決法

以下の手順でGoogle Drive APIを有効化してみてください

Google Drive APIを有効化する手順

  1. Google Cloud Consoleにログイン: https://console.cloud.google.com/
  2. 使用しているプロジェクトを選択します。
  3. 左側のナビゲーションメニューから「APIとサービス」を展開し、「ライブラリ」をクリックします。
  4. 検索バーに「Google Drive API」と入力し、検索結果からGoogle Drive APIを選択します。
  5. Google Drive APIを有効にする: Google Drive APIの詳細ページで「有効にする」ボタンをクリックして、有効化します。

APIの有効化の確認

APIが有効化されると、プロジェクトでGoogle Drive APIを使用できるようになります。場合によっては、APIの有効化後に数分程度待つ必要があることもあります。

完了後の再試行

APIを有効化した後、Pythonスクリプトをもう一度実行してみてください。おそらく、今回のエラーは解消されるはずです。

SpreadsheetNotFound: Response [200]

原因

指定したスプレッドシートのタイトルに誤りがあるか、スプレッドシートが見つからない

解決法

以下の点を確認してみてください。

確認事項

  1. スプレッドシートのタイトルが正しいか確認してください。Google Sheetsでスプレッドシートを開き、タイトルバーに表示されている名前を正確にコピーして使います。
  2. サービスアカウントがスプレッドシートにアクセスできるように、適切な権限を付与します。スプレッドシートを共有し、サービスアカウントのメールアドレスを追加して、「編集者」としてアクセス権を与えてください。

サービスアカウントにアクセス権を付与する手順

  1. 対象のスプレッドシートを開きます。
  2. 画面右上にある「共有」ボタンをクリックします。
  3. サービスアカウントのメールアドレスを入力し、権限を「編集者」に設定して追加します。
  4. 変更を保存して、サービスアカウントにスプレッドシートへのアクセス権を付与します。
Error: 'lighthouseResult' key not found in API response.

原因

APIレスポンスに lighthouseResult キーが見つからない

解決法

APIレスポンス全体にし、どのようなキーが含まれているか確認してみてください。

もしも lighthouseResult キーが存在しない場合、エラーや別のメトリクスが返されている可能性がありますので、全体のデータ構造を確認してみてください。

また、例外処理を改善するために、レスポンス内のキーを一覧表示し、適切なデータを見つける手助けをすることもできます。

Error: 'lighthouseResult' key not found in API response.

原因

APIレスポンスに lighthouseResult キーが見つからない

解決法

APIレスポンス全体にし、どのようなキーが含まれているか確認してみてください。

もしも lighthouseResult キーが存在しない場合、エラーや別のメトリクスが返されている可能性がありますので、全体のデータ構造を確認してみてください。

また、例外処理を改善するために、レスポンス内のキーを一覧表示し、適切なデータを見つける手助けをすることもできます。

# PageSpeed Insightsのスコアを取得
try:
	lighthouse_score = data["lighthouseResult"]["categories"]["performance"]["score"] * 100
except KeyError:
	print("Error: 'lighthouseResult' key not found in API response.")
	print("Available keys in API response:", list(data.keys()))
	lighthouse_score = None

lighthouseResultキーが存在することを確認できたら、lighthouseResultの中身を確認して、どの部分からスコアを取得するかを明確にしてみます。以下のコードを使って、lighthouseResultの中身を出力してみます。

print(data["lighthouseResult"])

この出力を確認した上で、lighthouseResultの中の正確なパスを使ってスコアを取得します。通常、パフォーマンスのスコアは以下のように取得できます。

 try:
     lighthouse_score = data["lighthouseResult"]["categories"]["performance"]["score"] * 100
     print(f"Lighthouse Performance Score: {lighthouse_score}")
 except KeyError as e:
     print(f"KeyError: {e}")

スコアが正しく抽出できたら、それをGoogle Sheetsに書き込みます。以下は、完全なスクリプトの例です。

import requests
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# PageSpeed Insights APIのURLとAPIキー
api_url = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed"
api_key = "YOUR_API_KEY"  # APIキーをここに入力

# 調査するウェブサイトのURL
website_url = "https://example.com" # 対象ウェブサイトのURLを入力

# PageSpeed Insights APIを呼び出してデータを取得
params = {
	"url": website_url,
	"key": api_key,
	"strategy": "mobile"  # "mobile"または"desktop"を指定
}
response = requests.get(api_url, params=params)
data = response.json()

# APIレスポンス全体を出力(デバッグ用)
print(data)

# PageSpeed Insightsのスコアを取得
try:
	lighthouse_score = data["lighthouseResult"]["categories"]["performance"]["score"] * 100
	print(f"Lighthouse Performance Score: {lighthouse_score}")
	except KeyError as e:
	print(f"KeyError: {e}")
	lighthouse_score = None

 if lighthouse_score is not None:
	# Google Sheets APIの認証設定
	scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
     
	# JSONファイルのパスを入力
	credentials = ServiceAccountCredentials.from_json_keyfile_name("C:/path/to/your/service_account_key.json", scope)  
	client = gspread.authorize(credentials)

	# スプレッドシートにデータを書き込む
	try:
		# スプレッドシートのタイトルを入力
		spreadsheet = client.open("Your Spreadsheet Name") 
		worksheet = spreadsheet.sheet1

		# スプレッドシートの次の空き行にデータを追加
		next_row = len(worksheet.get_all_values()) + 1
		worksheet.update_cell(next_row, 1, website_url)
		worksheet.update_cell(next_row, 2, lighthouse_score)

		print(f"PageSpeed Insightsのスコア: {lighthouse_score}")
	except gspread.exceptions.SpreadsheetNotFound:
	print("Error: スプレッドシートが見つかりませんでした。タイトルを確認してください。")
else:
	print("スコアを取得できませんでした。")
'error': {'code': 400, 'message': 'API key not valid. Please pass a valid API key.'...

APIキーが無効であることが原因のため、APIキーを確認して実行します。

  1. Google Cloud Consoleで、APIキーが正しく作成されているか確認してください。APIキーが誤ってコピーされていないか確認します。
  2. 「APIの制限」セクションで「PageSpeed Insights API」が含まれていることを確認し、含まれていなければ追加してください。
  3. 上記の確認で問題が見つからない場合は、新しいAPIキーを生成し、コード内のapi_key変数に設定します。
    まず、PageSpeed Insights APIがプロジェクトで有効になっているか確認します。
    1. Google Cloud Consoleにログイン。
    2. プロジェクトを選択。
    3. APIとサービス > ダッシュボードを選択。
    4. 「APIとサービスを有効にする」ボタンをクリック。
    5. 「PageSpeed Insights API」と検索し、該当するAPIを見つけます。
    6. APIが無効の場合は「有効にする」をクリックして有効にします。

    次に、APIキーの設定画面で、「APIの制限」の設定が正しいか確認します。

    1. APIとサービス > 認証情報を選択。
    2. 該当のAPIキーを選択。
    3. 「APIキーの制限」セクションで「なし」を選択してみる(制限を一時的に解除する)。

    新しいAPIキーを再度作成し、PageSpeed Insights APIを有効にした後に制限設定を行ってみます。

    1. 新しいAPIキーを作成。
      • 認証情報タブで「認証情報を作成」ボタンをクリックし、「APIキー」を選択。
      • 生成された新しいAPIキーをコピー。

    新しいAPIキーが正常に機能するか確認し、その後で制限を設定します。

    api_key = "YOUR_NEW_API_KEY"  # APIキーをここに入力
    

APIキーの環境変数の設定(セキュリティ強化)

セキュリティ強化のために、APIキーを環境変数として、コンソールで設定する方法もあります。

# Windowsの場合
set PAGESPEED_API_KEY=YOUR_API_KEY

Pythonスクリプト内で環境変数を読み込みます。

import os
import requests
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# PageSpeed Insights APIのURLとAPIキー
api_url = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed"
api_key = os.getenv("PAGESPEED_API_KEY")  # 環境変数からAPIキーを取得

# 調査するウェブサイトのURL
website_url = "https://example.com" # 対象ウェブサイトのURLを入力

# PageSpeed Insights APIを呼び出してデータを取得
params = {
	"url": website_url,
	"key": api_key,
	"strategy": "mobile" # "mobile"または"desktop"を指定
}
response = requests.get(api_url, params=params)
data = response.json()

# APIレスポンス全体を出力
print(data)

3. 指標の追加

APIレスポンスを確認し、追加したいキーが categories内に含まれているか確認します。

データが存在しない場合には、APIからのレスポンスが正常かどうかを確認するためのエラー処理を追加します。

categoryパラメータを使用することで、特定のLighthouseカテゴリ(例えば、accessibility、best-practices、seoなど)を指定してスコアを取得できます。

以下のようにリクエストパラメータを調整し、指標を追加します。

import requests
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# PageSpeed Insights APIのURLとAPIキー
api_url = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed"
api_key = "YOUR_API_KEY"  # APIキーをここに入力

# 調査するウェブサイトのURL
website_url = "https://example.com" # 対象ウェブサイトのURLを入力

# PageSpeed Insights APIを呼び出してデータを取得
params = {
    "url": website_url,
    "key": api_key,
    "strategy": "mobile", # "mobile"または"desktop"を指定
    "category": ["performance", "accessibility", "best-practices", "seo"] # 必要なカテゴリを追加
}
response = requests.get(api_url, params=params)
data = response.json()

# APIレスポンス全体を出力(デバッグ用)
print(data)

# PageSpeed Insightsの主要なスコアを取得
try:
    lighthouse_result = data["lighthouseResult"]

    # パフォーマンス評価点数
    performance_score = lighthouse_result["categories"]["performance"]["score"] * 100

    # FCP:最初にユーザーが見ることができるコンテンツが描画されるまでの時間
    first_contentful_paint = lighthouse_result["audits"]["first-contentful-paint"]["displayValue"]

    # ページの読み込み速度
    speed_index = lighthouse_result["audits"]["speed-index"]["displayValue"]

    # TTI:操作可能になるまでの時間
    time_to_interactive = lighthouse_result["audits"]["interactive"]["displayValue"]

    # TBT:ユーザーが操作できない時間
    total_blocking_time = lighthouse_result["audits"]["total-blocking-time"]["displayValue"]
    
    # LCP(Largest Contentful Paint) 最大のコンテンツ(画像やブロックレベルのテキスト要素など)が描画されるまでの時間の取得
    lcp_score = lighthouse_result["audits"].get("largest-contentful-paint", {}).get("displayValue", "Not Available")
    
    # CLS(Cumulative Layout Shift) ウェブページの視覚的な安定性を測る指標(ユーザーが意図せぬレイアウトのズレや崩れ)の取得
    cls_score = lighthouse_result["audits"].get("cumulative-layout-shift", {}).get("displayValue", "Not Available")

    # INP(Interaction to Next Paint) ユーザーのインタラクションに対する次のペイントまでの時間
    interaction_to_next_paint = lighthouse_result["audits"].get("interaction-to-next-paint", {}).get("displayValue", "Not Available")
    
    # ユーザー補助のスコアを取得
    accessibility_score = lighthouse_result["categories"].get("accessibility", {}).get("score", None)
    if accessibility_score is not None:
        accessibility_score = accessibility_score * 100

    # おすすめの方法のスコアを取得
    best_practices_score = lighthouse_result["categories"].get("ally-best-practices", {}).get("score", None)
    if best_practices_score is not None:
        best_practices_score = best_practices_score * 100
    
    # SEOのスコアを取得
    seo_score = lighthouse_result["categories"].get("seo", {}).get("score", None)
    if seo_score is not None:
        seo_score = seo_score * 100

    # PageSpeed Insightsのリンクを取得
    pagespeed_insights_link = f"https://developers.google.com/speed/pagespeed/insights/?url={website_url}&tab=mobile"

    print(f"Performance Score: {performance_score}")
    print(f"First Contentful Paint: {first_contentful_paint}")
    print(f"Speed Index: {speed_index}")
    print(f"Time to Interactive: {time_to_interactive}")
    print(f"Total Blocking Time: {total_blocking_time}")
    print(f"Largest Contentful Paint: {lcp_score}")
    print(f"Cumulative Layout Shift: {cls_score}")
    print(f"Interaction to Next Paint: {interaction_to_next_paint}")
    print(f"Accessibility Score: {accessibility_score}")
    print(f"Best Practices Score: {best_practices_score}")
    print(f"SEO Score: {seo_score}")
    print(f"PageSpeed Insights Link: {pagespeed_insights_link}")
except KeyError as e:
    print(f"KeyError: {e}")
    performance_score = None

if performance_score is not None:
    # Google Sheets APIの認証設定
    scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
    
    # JSONファイルのパスを入力
    credentials = ServiceAccountCredentials.from_json_keyfile_name("C:/path/to/your/service_account_key.json", scope)
    client = gspread.authorize(credentials)

    # スプレッドシートにデータを書き込む
    try:
        spreadsheet = client.open("Your Spreadsheet Name") # スプレッドシートのタイトルを入力
        worksheet = spreadsheet.sheet1

        # スプレッドシートの次の空き行にデータを追加
        next_row = len(worksheet.get_all_values()) + 1
        worksheet.update_cell(next_row, 1, website_url) 
        worksheet.update_cell(next_row, 2, performance_score)
        worksheet.update_cell(next_row, 3, first_contentful_paint)
        worksheet.update_cell(next_row, 4, speed_index)
        worksheet.update_cell(next_row, 5, time_to_interactive)
        worksheet.update_cell(next_row, 6, total_blocking_time)
        worksheet.update_cell(next_row, 7, lcp_score)
        worksheet.update_cell(next_row, 8, cls_score)
        worksheet.update_cell(next_row, 9, interaction_to_next_paint)
        worksheet.update_cell(next_row, 10, accessibility_score)
        worksheet.update_cell(next_row, 11, best_practices_score)
        worksheet.update_cell(next_row, 12, seo_score)
        worksheet.update_cell(next_row, 13, pagespeed_insights_link)

        print(f"PageSpeed Insightsのデータをスプレッドシートに書き込みました。")
    except gspread.exceptions.SpreadsheetNotFound:
        print("Error: スプレッドシートが見つかりませんでした。タイトルを確認してください。")
else:
    print("スコアを取得できませんでした。")

4. スプレッドシートへの出力

スプレッドシートにデータを列方向に追加することもできます。

以下のコードでは、指定した列にデータを追加する方法を示します。

    # スプレッドシートの次の空き列にデータを追加
    next_col = len(worksheet.row_values(1)) + 1
    worksheet.update_cell(1, next_col, website_url)
    worksheet.update_cell(2, next_col, performance_score)
    worksheet.update_cell(3, next_col, first_contentful_paint)
    worksheet.update_cell(4, next_col, speed_index)
    worksheet.update_cell(5, next_col, time_to_interactive)
    worksheet.update_cell(6, next_col, total_blocking_time)
    worksheet.update_cell(7, next_col, lcp_score)
    worksheet.update_cell(8, next_col, cls_score)
    worksheet.update_cell(9, next_col, interaction_to_next_paint)
    worksheet.update_cell(10, next_col, accessibility_score)
    worksheet.update_cell(11, next_col, best_practices_score)
    worksheet.update_cell(12, next_col, seo_score)
    worksheet.update_cell(13, next_col, pagespeed_insights_link)
    

変更点

  1. next_col変数を使用して、次の空き列を特定し、そこにデータを書き込みます。
  2. update_cellメソッドを使用して、各指標を順番に列に追加します。

7. まとめ

初めてのPythonを使ってウェブスクレイピングに挑戦し、Google PageSpeed Insights APIを利用してウェブページのパフォーマンスデータを取得する方法を解説しました。

このブログを通じて、Pythonの基本的な環境設定からAPIの呼び出し、データの解析、そしてGoogle Sheetsへのデータ出力まで、一連の流れを学びました。

特に、各指標に対する「合格」「不合格」の評価基準を追加することで、ウェブページのパフォーマンス状態を一目で把握できるようになりました。

さらに、このプロジェクトを通じてPythonのスキルを向上させることができました。

また、MicrosoftのAIコンパニオンであるCopilotさんのサポートを受け、楽しく初めてのPythonプログラミングとスクレイピングを成功させることができました。

これからもPythonや他の技術を活用して、さらなるデータ分析やウェブパフォーマンスの改善に挑戦してみます。

このブログが皆さんのプロジェクトに役立つことを願っています。

おわりに…Anacondaをインストールしなかった理由

PythonとPythonライブラリのインストールにおいて、Anacondaは非常に便利なツールです。

複数の仮想環境を簡単に管理できたり、Jupyter Notebookなどの便利なツールがプリインストールされていたりするので、データサイエンスや機械学習の分野で特に人気があります。

ただ、今回はより一般的な方法をお伝えするために、Anacondaを使用しない方法で説明しました。

理由

  1. シンプルさ
    Anacondaは非常に強力ですが、初めてのユーザーにとってはその大きなインストールサイズや多機能性がかえって混乱を招くことがあります。Pythonとpipを使った基本的なインストール方法は、シンプルで理解しやすいです。
  2. 柔軟性
    Anacondaは特定の環境に特化しているため、必要なパッケージがAnacondaのリポジトリにない場合、pipでのインストールが必要になることがあります。標準的なPythonとpipの環境を使うことで、より柔軟にパッケージを管理できます。
  3. リソースの軽さ
    Anacondaは多くのパッケージを含むため、インストール時のディスク使用量が大きくなります。軽量な環境を維持したい場合は、基本的なPythonとpipを使用する方が適しています。

コメント