Yahoo!リスティング広告で出稿している広告の掲載順位をロギングするPerlスクリプト
スポンサードリンク
Yahoo!のリスティング広告に出稿しているのですが、偉い人が見ている時に限って表示されない。調査しろと言われたので、スクリプトを作りました。
cronで1時間に1回実行します。
use strict; use warnings; use utf8; use WWW::Mechanize; use YAML; use FindBin::Real; use File::Spec; chdir FindBin::Real::Bin(); my $logdir = 'logs-yahoo/'; my $mech = WWW::Mechanize->new; $mech->agent_alias( 'Windows IE 6' ); $mech->add_header( 'Accept-Language' => 'ja,en-us;q=0.7,en;q=0.3'); $mech->add_header( 'Accept-Charset' => 'Shift_JIS,utf-8;q=0.7,*;q=0.7'); $mech->add_header( 'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'); $mech->add_header( 'Accept-Encoding' => 'gzip, deflate'); my $res = $mech->get('http://www.yahoo.co.jp/'); sleep 3; $mech->submit_form( fields => { form_name => 'sf1', p => '印刷', }, ); use Web::Scraper; my $html = $mech->content(); my $scraper = scraper { process '#So1 li, #So3 li', 'list[]' => scraper { process 'a.t', 'title' => 'TEXT'; process 'a.t', 'href' => '@HREF'; process 'span.u', site => 'TEXT'; }; process '#So2 li', 'list2[]' => scraper { process 'a.t', 'title' => 'TEXT'; process 'a.t', 'href' => '@HREF'; process 'span.u', site => 'TEXT'; }; }; my $result = $scraper->scrape( $html); my $result2; $result2->{list} = [ @{$result->{list}}, @{$result->{list2}}]; my $filename = time.'.yaml'; my $filepath = File::Spec->catdir( $logdir, $filename ); YAML::DumpFile($filepath, $result2); exit; __END__
Google用のやつは前作っておいたのですが、それを改造してYahoo用を作りました……
このログを使って1か月分の表示頻度をヒストグラムに出すと、表示されなくなる時間帯が分析できます……
インターネット広告ってやっぱり大変だなとか思ってます。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3691
コメントする