#!/usr/bin/perl -w
use LWP::Simple;
$url="http://www.boc.cn/cn/common/whpj.html";
$out_str_old="unvalible";
$LOG_FILE_NAME="rates.txt";
if(-e $LOG_FILE_NAME){
open STDOUT,">>$LOG_FILE_NAME";
}else{
open STDOUT,">$LOG_FILE_NAME";
print "日期 时间 现汇买入价 现汇买入价 卖出价 中行折算价 (基准价)\n";
}
$html = get $url;
$html =~ m/(?:日期.([\/\d]+))/m;
$date=$1;
while(1){
$html =~ m/欧元
(?:\s*<[^>]*>\s*)+(\d+\.?\d*) #现汇买入价 $1
(?:\s*<[^>]*>\s*)+(\d+\.?\d*) #现钞买入价 $2
(?:\s*<[^>]*>\s*)+(\d+\.?\d*) #卖出价 $3
(?:\s*<[^>]*>\s*)+(?:(\d+\.?\d*)|[^<>]*) #基准价 $4
(?:\s*<[^>]*>\s*)+(\d+\.?\d*) #中行折算价 $5
(?:\s*<[^>]*>\s*)+(\d{1,2}:\d{2}:\d{2}) #时间 $6
/mx;
if(!$1){
print STDERR "Network or HTML Error\n";
#last;
exit 1;
}
if($4){
$out_str=$1."\t\t".$2."\t\t".$3."\t\t".$5."\t\t".$4;
}else{
$out_str=$1."\t\t".$2."\t\t".$3."\t\t".$5;
}
#输出格式:日期 时间 现汇买入价 现汇买入价 卖出价 中行折算价 (基准价)
if( $out_str_old ne $out_str){
print STDERR"The rates updated.\n";
print $date,"\t",$6,"\t",$out_str,"\n";
$out_str_old=$out_str;
}
sleep 60;
$html = get $url;
}
|