[ロ] asamasiさちょっとレベルアップ

このエントリーをはてなブックマークに追加
はてなブックマーク - [ロ] asamasiさちょっとレベルアップ
Facebook にシェア
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`tweetmeme` not found]

Amazonのレポートページが変更されたためにasamasid – Amazon + Google アフィリエイトレポートが動かなくなって結構たちましたー。不便なんだけど、無ければないで別に困らないという理由で放置してました。で、あの毎日のレポートがなくなるとアフィリエイトがどうでもよくなってきて、そっちも放置!
これはよくない。というわけで、perl&WWW:Mechanizeの練習を兼て、今のAmazonReportをメールで送ってくれるスクリプトを書いてみました。
書いてみると38行。50行にすら到達しませんでした(w
すげー簡単。perlと聞いただけで拒絶反応でぎみなんですが、ちょっといいな、やっぱりこの層の厚さがperlだなぁと改めて思ったり。
勉強だ!!とかおもって「Perlクックブック」買い揃えるより、こういうネタで覚えていった方が効率的。わからなくなったら本読もう。
んで、できたコードはこんな感じ。

#!/usr/bin/perl
use strict;
use WWW::Mechanize;
use MIME::Lite;
my $url = ‘http://associates.amazon.co.jp/gp/associates/login/login.html’;
my $email = ‘***************’;
my $pass = ‘***************’;
# トップページの取得
my $mech = WWW::Mechanize->new();
$mech->agent_alias(‘Windows IE 6’);
$mech->get( $url );
# ログイン
$mech->form_number(1);
$mech->set_fields(‘email’ => $email, ‘password’ => $pass );
$mech->click();
# レポート の取得
$mech->follow_link(text => “注文レポート”);
$mech->form_number(1);
$mech->set_fields(‘preSelectedPeriod’ => ‘昨日’);
$mech->click(‘submit.download_CSV’);
my $report = $mech->content();
#print $report;
# メール送信
my $mime = MIME::Lite->new(
To => $email,
From => $email,
Subject => “Amazon Affiliate Report”,
Type => “text/plain; charset=UTF-8”,
Encoding => “8bit”,
Data => $report,
);
$mime->send();

「注文レポート」で期間を「昨日」に設定してTSV(タブ区切り)で出力させてそれをメールで送るスクリプトです。
blog.bulknews.net の Amazon アフィリエイトレポート とこの記事の最後にまとめた資料を眺めながら書きました。
asamasidみたいに、スレッドで動かしたりという処理はさせていないので、cronで定時に呼び出す方法で使うのがよいかと思います。期間を「昨日」じゃなくて「現四半期」とか「第3四半期 2005」とかにしてあげれば、それぞれデータが取れますし、レポートの種類を「注文レポート」から「トラッキングIDレポート」「売上レポート」とかにしてみれば他のデータも取得可能。
【参考情報】
Perlモジュール/WWW::Mechanize
asamasid – Amazon + Google アフィリエイトレポート
Spidering hacks―ウェブ情報ラクラク取得テクニック101選
Blog Hacks ―プロが教えるテクニック&ツール100選

Popular Posts:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*