Googleウェブマスターツールのレポートを定点観測したい

投稿日:

Googleウェブマスターツールが提供してくれる情報を、いちいち管理ツールにログインすることなく、定期的に自動取得したいのでPerlでこんなコードを書いてテストしてみた。

#!/usr/bin/env perl

use strict;
use WWW::Mechanize;
use Data::Dumper;
use FileHandle;
use Net::SMTP::OneLiner;

$Data::Dumper::Indent = 1;

my $url = 'https://www.google.com/accounts/ServiceLogin?service=sitemaps&passive=true&nui=1&continue=https%3A%2F%2Fwww.google.com%2Fwebmasters%2Ftools%2F&followup=https%3A%2F%2Fwww.google.com%2Fwebmasters%2Ftools%2F&hl=ja';
my $user_id = 'MY_GOOGLE_ACCOUNT';
my $user_password = 'PASSWORD';

sub message { print @_; }
sub abort { &message(@_); exit 8; }

# get top page
my $mech = WWW::Mechanize->new();
$mech->agent_alias( 'Mac Mozilla' );

my $response = $mech->get($url);
&abort(Dumper($response)) unless ($mech->success);


#login
$mech->form_number(1);
$mech->set_fields('Email' => $user_id, 'Passwd' => $user_password);
$response = $mech->submit;
&abort(Dumper($response)) unless ($mech->success);


# move to the page
$response = $mech->follow_link(text => 'blog.somethingnew2.com');
&abort(Dumper($response)) unless ($mech->success);


# move to detail page
$response = $mech->follow_link(url_regex => qr/top-search-queries/i);
&abort(Dumper($response)) unless ($mech->success);


# get top-search-queries-csv
$response = $mech->follow_link(url_regex => qr/top-search-queries-dl/i);
&abort(Dumper($response)) unless ($mech->success);

print ("$response\n");

詳細ページの表示は問題なし。CSVのデータもダウンロードできそうだ。

TODO:
Plaggerのプラグインにして、メール送信はP::P::P::Gmailとかで送るようにする。
→ ウォッチ対象のURLと、レポートの送り先をPlaggerの設定ファイル(.yaml)で管理するようにしたい
プラグインにするベースは AmazonAssociateReportJP.pm あたりを参考にすれば案外簡単にできそうだ。
Yahoo!サイトエクスプローラーのデータも自動取得するものも作らないと。