概要
Google Search ConsoleのAPIの検索アナリティクスが公開されました
仕事で複数のサイトを保守しなければならず
毎回、手でおこなうのは非効率だった
APIを使用してデータを取得できるのかを試してみた
(API使い方や取得方法などを記載しました)
1・Webmaster Tools APIの登録とOauthの設定
・Google Developers Consoleにアクセスして、既存のプロジェクトを選択するか
新しくプロジェクトを作る
新しくプロジェクトを作る場合
https://console.developers.google.com/flows/enableapi?apiid=webmasters
既存の場合
https://console.developers.google.com/project
・Webmaster Tools APIが無効になっていたら有効にする(既存の場合
APIを有効にするのボタンを押す
・新規のプロジェクトの同意画面を作成する
サービス名を適当な名前をいれる
・認証情報(OAuth)を作成する
詳細な画面がでてくるので
アプリケーションの種類
→インストールされているアプリケーション
インストールされているアプリケーションの種類
→その他にする
・作成してJSONファイルをダウンロードする
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がでてくるので
コピーしてブラウザに貼り付ける
コードがでくるのでそれをコピーして貼り付ける
サイト一覧が取得できた!!
4・検索アナリティクスを取得してみる
https://developers.google.com/webmaster-tools/v3/how-tos/search_analytics
サンプルソースをコピーして実行します
(出力はAvaailableだけにしています)
なお、一回目は認証が走ってwebmasters.datファイルが作成されます
Oauthでダウンロードしたjsonファイルを
実行プログラムの所におく。
必ずclient_secrets.jsonというファイル名にしなければならない
GUIの画面と一致されたのが確認できた
ちなみに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ファイルが作成がもれていたので修正しました