ビジネスに使える無料Webツールを公開しました

Google Search Console APIをPythonで使用する方法

この記事では、Google Search Console(サーチコンソール) のデータをPythonで分析するために、Google Search CosnoleのAPIを利用する方法を解説します。

簡単な流れは以下の通りです。

  1. Google Cloud でプロジェクトを作成
  2. Google Cloud でSearch ConsoleのAPIを有効化し、認証用のキーを取得する
  3. Google Colabでアカウント同士を認証させる
  4. データを取得

それでは、行ってみましょう!

動画で見る

ヘイショー

動画で学びたい方は、上記の内容をご参考ください。

STEP 1. Google Cloud でプロジェクトを作成

 

STEP 2. Search ConsoleのAPIを有効化する

 

 

 

STEP 3. OAuth consent screenを作成

 

 

 

STEP 4. Credentioalsを作成

STEP 5. Google Colabで読み込む

コード

# Install required python packages
!pip install oauth2client
!pip install google-api-python-client
!pip install httplib2
コード

# Import required packages
from oauth2client.client import OAuth2WebServerFlow
from googleapiclient.discovery import build
import httplib2

CLIENT_ID = "★Google Cloudで取得したClient Secretを貼り付け★"
CLIENT_SECRET = "★Google Cloudで取得したClient Secretを貼り付け★"

# Define Oath scopes with read only access
OAUTH_SCOPE = 'https://www.googleapis.com/auth/webmasters.readonly'

# OAUTH_SCOPE = 'https://www.googleapis.com/auth/webmasters'

# Redirect URI to open Authorization Code Window in Browser
REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob'

# Build URL that generates Authorization Code
flow = OAuth2WebServerFlow(CLIENT_ID, CLIENT_SECRET, OAUTH_SCOPE, REDIRECT_URI)
authorize_url = flow.step1_get_authorize_url()

#Print Authorization URL
print("Go to the following link in your browser: " + authorize_url)

STEP 6. Google Colabのアカウントと、Goolge Cloudのアカウントを認証させる

 

 

ここのAuthorization codeをコピーします。

STEP 7. Search Console APIが読み込めているか確認

コード

auth_code = "★さっきコピーしたAuthorization codeを貼り付ける★"
credentials = flow.step2_exchange(auth_code)

# Create an httplib2.Http object and authorize it with our credentials
http = httplib2.Http()

#authorize credentials
creds = credentials.authorize(http)

#building a service to access various features of GSC API
webmasters_service = build('searchconsole', 'v1', http=creds)
webmasters_service

<googleapiclient.discovery.Resource at ◯◯◯◯> というメッセージが返ってきたらOKです。

STEP 8. 日別データを抽出

コード

# the website we want to get the data for
website = "https://heysho.com/"

# build a request body
request_body = {
"startDate" : '2024-01-01',
"endDate" : '2024-02-28',
"dimensions" : ['date'],
"rowLimit" : 25000,
"dataState" : "final"
}

# get the response using request body
response_data = webmasters_service.searchanalytics().query(siteUrl=website, body=request_body).execute()

for each in response_data['rows']:
print(each)

これで日別のデータが返ってきたら成功です。

まとめ

セットアップのみになりましたが、本格的な分析も後日追記します。

参考になれば幸いです。

ヘイショー

ご精読ありがとうございました。