#!/usr/bin/perl -w use url_get; use Template::Extract; use Jcode; my $url = "http://quote.yahoo.co.jp/"; my @cate = ( 'trade_code', 'market_place', 'company_name', 'trade_time', 'last_trade', 'change', 'change_percent', 'volume', 'chart_url', ); print "Content-Type: text/html; charset=utf-8\n\n"; # クエリ取得 my @codes = getquery(); my %stock = (); for ( @codes ) { my $code = $_; my $url_code = $url."q?s=".$_; my $ug = new url_get( $url_code, "GET", "" ); my @lines = $ug->geturl(); my $document = ""; for (@lines) { $_ =~ tr/\x0D\x0A|\x0D|\x0A//d; $document .= $_; } my $obj = Template::Extract->new; (my $template = << '.') =~ tr/\x0D\x0A|\x0D|\x0A|\x09//d; [% trade_code %] [% market_place %] [% company_name %] [% trade_time %] [% last_trade %] [% change %] [% change_percent %] [% volume %] . my $ext = $obj->extract($template, $document); for ( @cate ) { $ext->{$_} =~ s/^//; $ext->{$_} =~ s/<\/font>$//; $stock{$code}{$_} = &utf8($ext->{$_}); } } foreach my $key ( keys %stock ) { for ( @cate ) { print $_." : ".$stock{$key}{$_}."
\n"; } } # クエリの取得と変数への格納 sub getquery { # クエリの取得 my $buffer; if( $ENV{'REQUEST_METHOD'} eq "GET" ) { $buffer = $ENV{'QUERY_STRING'}; } else { read( STDIN, $buffer, $ENV{'CONTENT_LENGTH'} ); } # 取得したクエリから変数にセット my @indata = split(/&/,$buffer); return @indata; } sub utf8 { my $str = shift; my $j = jcode($str); return $j->utf8 }