#!/usr/bin/perl use LWP::Simple; require './cgi-lib.pl'; my $aid = "00236b7c.23302187"; #Formの読み込み &ReadParse(*input_data); my $g = $input_data{'g'}; my $s = $input_data{'s'}; my $sub = $input_data{'sub'}; my $f = $input_data{'f'}; my $sw = $input_data{'sw'}; my $nw = $input_data{'nw'}; my $min = $input_data{'min'}; my $max = $input_data{'max'}; my $p = $input_data{'p'}; my $cl = "627F9E"; #青みグレー my $url = "http://ecustom.listing.rakuten.co.jp/rms/sd/ecustom/mall?cl=$cl&nm=&bk=&hd=&aid=$aid&sg=&g=$g&v=2&p=$p&s=$s&sub=$sub&min=$min&max=$max&f=$f&sw=$sw&nw=$nw"; my $html = get($url); $html =~ s/\n//g; #初期情報 #カレントディレクトリ $html =~ /.*name="g" value="([a-zA-Z0-9]+)".*(.*)内で.*全体で.*/; $cur_cat_num = $1; $cur_cat = $2; #print "CURRENT CAT:$1,$2\n"; #検索ページ $html =~ /]+>]+>]+>]+>([\d,]+)件〜([\d,]+)件 \(全 ([\d,]+)件\)/; my ($start,$end,$all) = ($1,$2,$3); if ($cur_cat or ($g == 0 and $html =~ //)) { unless ($html =~ //) { &header; &resultT; &footer; } else { &header; &resultF; &footer; } } else { &categorylist; } exit; sub header { my $s_key = "$sw " if $sw; $s_key .= "- $nw " if $nw; $page_info = " [$start-$end件 (全 $all件)]" if ($start or $end or $all); print <<"EOM"; Content-type: text/html $s_key$cur_cat 通販:売れ筋情報$page_info
$cur_cat 通販:売れ筋情報
EOM #検索フォーム { $html =~ /(.*)/; my $searchform = $1; $searchform =~ s#/rms/sd/ecustom/mall#http://hotseller.doraneco.com/mall.pl#; #$searchform =~ s#method="GET"#method="POST"#i; $searchform =~ s///; $searchform =~ s///; $searchform =~ s///; $searchform =~ s///; $searchform =~ s#/com/img/home/t.gif#http://hotseller.doraneco.com/image/t.gif#g; print $searchform; } print qq|
|; #カテゴリ情報 { $html =~ /(.*)\n\n
\n#; print &ChangeLink(\$cat_select); } print <<"EOM";   EOM #並び替え { $html =~ /(.*)/; my $sort = $1; $sort =~ s# ]+>]+>表示方法.*ウィンドウショッピング
##; print &ChangeLink(\$sort); } } sub resultT { #ページ送り #{ $html =~ /(.*)/; my $pageguide = $1; $pageguide =~ s###; $pageguide =~ s###; print qq|
|; print &ChangeLink(\$pageguide); #} print qq|
|; #商品情報 { $html =~ /結果表示(.*)結果表示/; my $product = $1; my @product = split //, $product; pop @product; foreach my $product (@product) { my ($prourl,$imgurl); if ($product =~ /]+><\/a>/) { ($prourl,$imgurl) = ($1,$2); $imgurl =~ s/img64/img128/; $imgurl =~ s/ex=64x64/ex=128x128/; $imgurl = "" unless $imgurl =~ /http/; } if ($product =~ /]+>([^<]*)<\/font><\/a>/; my $proname = $1; #print "$prourl,$imgurl,$proname$1\n"; $product =~ /([\d,]+) 円<\/font>/; my $price = $1; my $priceinfo; $product =~ /(税[^<]*込)<\/font>/; $product =~ /(税[^<]*別)<\/font>/; $product =~ /(税[^<]*、送料[込|別]+、在庫なし<\/font><\/b>)/; $priceinfo = $1; $product =~ /([^<]*)<\/font>/; my $proinfo = $1; #print "$price,$priceinfo,$proinfo\n"; $product =~ /([^<]+)<\/font><\/a>/; my ($shopurl,$shopname) = ($1,$2); #print "$shopurl,$shopname\n\n"; $shopurl = &affili_rakuten($shopurl); print <<"EOM";
EOM if ($imgurl) { print qq|$proname|; } else { print qq|$proname|; } unless ($sub == 3) { $price = $price ."円"; } else { $price = ''; } print <<"EOM";
$proname 
$proinfo
$price $priceinfo ストア: $shopname
EOM } } print <<"EOM";
$pageguide
EOM } sub footer { print <<"EOM"; EOM } sub ChangeLink { my $html = ${$_[0]}; while ($html =~ s/\/rms[^"]+&sg=(\d*)&g=([a-zA-Z\d]+)&v=(\d+)&p=(\d*)&s=(\d+)&sub=(\d+)&min=(\d*)&max=(\d*)&f=([AO])&sw=([^"]*)&nw=([^"]*)/<>/) { my ($sg,$g,$v,$p,$s,$sub,$min,$max,$f,$sw,$nw) = ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11); int $sg; int $v; int $p; int $s; int $sub; $p = 1 unless $p; my $url = "http://hotseller.doraneco.com/mall/"; $url .= "$g/"; $url .= "$s\-$sub\-$f-"; #並び順_対象商品_検索条件 $url .= "$sw\_$nw\_"; $url .= "$min-$max/"; $url .= "$p.html"; $html =~ s/<>/$url/; } return $html; } sub resultF { print "検索条件に該当する商品はありませんでした。"; } sub affili_rakuten { my $url = shift; # リンク先をアフィリに $url =~ s/:/%3a/g; $url =~ s/\//%2f/g; $url = "http://pt.afl.rakuten.co.jp/c/$aid/?url=$url"; return $url; } sub categorylist { $html =~ /(.*)/; my $form = $1; $form =~ s#
##; $form =~ s#method="GET"#method="POST"#i; $form =~ s///; $form =~ s///; $form =~ s///; $form =~ s///; $form =~ s#"/com/img/home/t.gif"#"http://hotseller.doraneco.com/image/t.gif"#g; $catlist =~ s#"/com/img/icon/cir.gif"#"http://hotseller.doraneco.com/image/cir.gif"#g; $html =~ /(.*)/; my $catlist = $1; $catlist =~ s#"/com/img/home/t.gif"#"http://hotseller.doraneco.com/image/t.gif"#g; $catlist =~ s#"/com/img/icon/cir.gif"#"http://hotseller.doraneco.com/image/cir.gif"#g; print <<"EOM"; Content-type: text/html 通販:売れ筋情報$page_info
$cur_cat 通販:売れ筋情報
通販:売れ筋情報 > ジャンルで選ぶ

EOM print &ChangeLink(\$form); print &ChangeLink(\$catlist); print <<"EOM";
EOM }