M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2011年8月27日 18:16

Yahoo!リスティング広告で出稿している広告の掲載順位をロギングするPerlスクリプト

このエントリーをはてなブックマークに追加 mixiチェック

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か月分の表示頻度をヒストグラムに出すと、表示されなくなる時間帯が分析できます……

インターネット広告ってやっぱり大変だなとか思ってます。

投稿 大野 義貴 [Web] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3691

コメントする