# マネージド機能のインストール(初回のみ実行) pip install --upgrade google-api-python-client pip install oauth2client # ライブラリの読み出し import pandas as pd from googleapiclient.discovery import build from oauth2client.service_account import ServiceAccountCredentials from datetime import datetime, date, timedelta
## サーチコンソールへのアクセス設定を行う SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly'] ## 固定設定 KEY_FILE_LOCATION = 'xxxxxxx.json' ## 自分のgoogle search console上で作成したjsonの認証情報を設定する credentials = ServiceAccountCredentials.from_json_keyfile_name(KEY_FILE_LOCATION, SCOPES) webmasters = build('webmasters', 'v3', credentials=credentials) domain = 'https://xxxxxx.com' ## 自分のgoogle search consoleに登録してあるサイトのURL dimensions = ['query', 'page'] ## 取得データは直近90日分に絞る today = datetime.today() startDate = (today - timedelta(days=90)).strftime('%Y-%m-%d') ## 実行日の90日前を指定 endDate = today.strftime('%Y-%m-%d') ## データ取得終了日は処理日を指定 rowLimit = 5000 # 取得レコード数の最大値を設定 body = { 'startDate': startDate, 'endDate': endDate, 'dimensions': dimensions, 'rowLimit': rowLimit } ## ここでデータ取得 response = webmasters.searchanalytics().query(siteUrl=domain, body=body).execute() df = pd.json_normalize(response['rows']) ## 取得したデータの整形 for i, d in enumerate(dimensions): df[d] = df['keys'].apply(lambda x: x[i]) ## google search consoleの3ヶ月の平均掲載順位を取得 df_positonMarge = df.loc[df.groupby('page')['position'].idxmin()] ## pageでgroupbyした結果で最もpositionが小さい値を取得 print(df_positonMarge["position"].mean().round(2)) > 19.79 # 上記コードの実行結果
手動設定必要なコード
3行目:自分のgoogle search console上で作成したjsonの認証情報を設定する
7行目:自分のgoogle search consoleに登録してあるサイトのURL
pythonコード作成前に、GCPのプロジェクト作ったり、search console apiを有効化したり、アクセスのためのアカウントや認証キーの作成が必要ですが、その辺りは以下サイトに詳細書いてありますので、そちらを参照ください。