Amazonのランキングを自動で記録しよう
Mona本ですが、やはりわが子のような感覚なのでついついAmazonへ行ってランキングを見てしまいます。
日に何回も見ていると非効率だなと気づいたので、いい加減なスクリプトをでっち上げてみました。
使い方
./monabookrank.pl >>monarank.csv
これをある一定時間ごとにcronやタスクスケジューラで実行すると monarank.csv に以下の形式で日付時刻とそのときの順位が追記されていきます。
2005/04/29 22:58:04,83
ソース
変数urlを順位を知りたい商品のAmazon詳細ページのURLに設定してください。
#!/usr/bin/perl -w use strict; use LWP::Simple; use HTML::TreeBuilder; my $url = 'http://www.amazon.co.jp/exec/obidos/ASIN/4839917639/qid%3D1114779653/250-6926639-1062628'; main(); sub main { my $data = get($url) or die "connect error $url"; my $tree = HTML::TreeBuilder->new; $tree->parse($data); for ($tree->find_by_tag_name("font")) { if ($_->as_text =~ /^.*Amazon.co.jp 売上ランキング: (\d+)\s.*$/) { my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); my $now = sprintf("%04d/%02d/%02d %02d:%02d:%02d", $year + 1900, $mon +1, $mday, $hour, $min, $sec); print "$now,$1\r\n"; return; } } }