Top > Perl > bk1nowreading.pl

WWW::Mechanize を使って bk1 の注文履歴を取得するスクリプトを作ってみました。取得した書籍リストは、トップページに Now Reading として貼り付けてます。

■bk1nowreading.pl

#!/usr/bin/perl -w
 
use strict;
use WWW::Mechanize;
use HTML::Template;
use Jcode;
 
my $email = '';
my $password = '';
my $last = 10;
my $url = 'http://www.bk1.co.jp/';
 
my $mech = WWW::Mechanize->new();
$mech->agent_alias('Windows IE 6');
 
$mech->get($url);
$mech->follow_link(url_regex => qr/login\.cgi/);
$mech->form_name('FormName');
$mech->field(user_e_mail => $email);
$mech->field(password => $password);
$mech->click();
 
my @items;
foreach my $link ($mech->find_all_links(url_regex => qr/srch_detail\.cgi/)) {
    my ($bibid) = $link->url =~ /bibid=(\d+)/;
    push @items, { bibid => $bibid, text => $link->text };
    last if @items >= $last;
}
 
my $tmpl = HTML::Template->new(filehandle => *DATA);
$tmpl->param(items => \@items);
print Jcode->new($tmpl->output)->euc;
 
__DATA__
<TMPL_LOOP items>
<a href="http://www.bk1.co.jp/cgi-bin/srch/srch_detail.cgi?
aid=&bibid=<TMPL_VAR bibid>" target="_blank">
<TMPL_VAR text></a><br />
</TMPL_LOOP>

■実行方法

$email と $password を設定して

% ./bk1nowreading.pl > nowreading.html

cron で定期的に実行して nowreading.html を SSI でトップページに取り込んで表示させています。

■参考
blog.bulknews.net: Amazon アフィリエイトレポート

TrackBack(0)
TrackBack URL for this entry: http://www.asmate.net/mt/mt-tb.cgi/70
Comments (2)

すごい。すごすぎます。
勉強になりました。

Posted by 河野 at 2004/03/30 12:03

宮川さんのサンプルがあったおかげで手っ取り早く作れました。先人に感謝です!

Posted by Yutaka at 2004/03/31 10:45
コメントする









名前、アドレスを登録しますか?







Since 2003.6.19, Yutaka@smate.NET <yutaka@asmate.net>. Powered by MT 2.64