masalibの日記

システム開発、運用と猫の写真ブログです

Google Search ConsoleのAPIを試してみた

f:id:masalib:20150807231637p:plain

概要

Google Search ConsoleAPIの検索アナリティクスが公開されました

www.seojapan.com

仕事で複数のサイトを保守しなければならず
毎回、手でおこなうのは非効率だった
APIを使用してデータを取得できるのかを試してみた
API使い方や取得方法などを記載しました)

環境:
os:Windows7
言語:python 3.4

1・Webmaster Tools APIの登録とOauthの設定

Google Developers Consoleにアクセスして、既存のプロジェクトを選択するか
 新しくプロジェクトを作る

新しくプロジェクトを作る場合
https://console.developers.google.com/flows/enableapi?apiid=webmasters

f:id:masalib:20150807224003j:plain


既存の場合
https://console.developers.google.com/project

・Webmaster Tools APIが無効になっていたら有効にする(既存の場合

f:id:masalib:20150807224324j:plain

f:id:masalib:20150807224342j:plain

APIを有効にするのボタンを押す
f:id:masalib:20150807224306p:plain

f:id:masalib:20150807224412j:plain

・新規のプロジェクトの同意画面を作成する
サービス名を適当な名前をいれる
f:id:masalib:20150807224434j:plain

・認証情報(OAuth)を作成する

f:id:masalib:20150807224748p:plain

詳細な画面がでてくるので
アプリケーションの種類
→インストールされているアプリケーション
インストールされているアプリケーションの種類
→その他にする
f:id:masalib:20150807224923j:plain


・作成してJSONファイルをダウンロードする

f:id:masalib:20150807225410p:plain

2・Google Client Libraryをインストールする

easy_install --upgrade google-api-python-client

python2.7.6だとなぜか

UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 8: ordinal
not in range(128)

というエラーがでた・・・
あとでわかったことだがバージョンが古かったみたい
ブログを書いていて調べて気がついた。まじでばがです

構文がちがうみたいです

2.7:print "test"
3.4:print ("test")

標準入力
2.7:raw_input
3.4:input

3・サンプルを実行する

https://developers.google.com/webmaster-tools/v3/quickstart/quickstart-python

YOUR_CLIENT_IDとYOUR_CLIENT_SECRETは
OAuthで表示されていた内容をコピペする

#!/usr/bin/python

import httplib2

from apiclient import errors
from apiclient.discovery import build
from oauth2client.client import OAuth2WebServerFlow

# Copy your credentials from the console
CLIENT_ID = 'YOUR_CLIENT_ID'
CLIENT_SECRET = 'YOUR_CLIENT_SECRET'

コマンドを実行する

C:\Python34\src>python webmasters-quickstart.py
__init__() takes at most 4 positional arguments (5 given)
Go to the following link in your browser: https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fw....
Enter verification code:

URLがでてくるので
コピーしてブラウザに貼り付ける

f:id:masalib:20150807225854j:plain

コードがでくるのでそれをコピーして貼り付ける

f:id:masalib:20150807230151j:plain

サイト一覧が取得できた!!

4・検索アナリティクスを取得してみる

https://developers.google.com/webmaster-tools/v3/how-tos/search_analytics

サンプルソースをコピーして実行します
(出力はAvaailableだけにしています)

なお、一回目は認証が走ってwebmasters.datファイルが作成されます

Oauthでダウンロードしたjsonファイルを
実行プログラムの所におく。
必ずclient_secrets.jsonというファイル名にしなければならない


f:id:masalib:20150807230357j:plain

GUIの画面と一致されたのが確認できた
f:id:masalib:20150807230847j:plain


ちなみにpython3.4だと下記の部分でエラーになった

     print (row_format.format(
        keys, row['clicks'], row['impressions'], row['ctr'], row['position']))

あきらめて下記のように修正した

    print (row['keys'])
    print (row_format.format(1, row['clicks'], row['impressions'], row['ctr'], row['position']))

あとでバージョンを2.7.7にしてやり直してみます

このプログラムをバッチにしてCSV出力などの修正すれば
運用に載せることができそう!!
CSV出力に修正したらアップします


2015/08/11:追記
webmasters.datファイルが作成がもれていたので修正しました