美股数据源自东方财富网。本来打算用zef安装操作excel的包,无奈win10下很多包都装不好,于是选择用powershell写入txt保存。代码如下所示
use HTTP::UserAgent;
use JSON::Tiny;
try {
my $client = HTTP::UserAgent.new;
my $abc = "http://3.push2.eastmoney.com/api/qt/clist/get?pn=1&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:105,m:106,m:107&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f26,f22,f33,f11,f62,f128,f136,f115,f152";
my $temp = from-json $client.get($abc).content;
my $sum = $temp<data><total>.Str;
my $target = "http://3.push2.eastmoney.com/api/qt/clist/get?pn=1&pz=$sum&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:105,m:106,m:107&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f26,f22,f33,f11,f62,f128,f136,f115,f152";
my $data0 = $client.get($target).content;
my $temp0 = from-json $data0;
my $total = ($temp0<data><diff>).elems - 1;
my @foo = 0..$total;
for @foo {
put "****************************************";
put "股票名称:$temp0<data><diff>[$_]<f14>";
put "股票缩写:$temp0<data><diff>[$_]<f12>";
put "上市时间:$temp0<data><diff>[$_]<f26>";
put "最新价: $temp0<data><diff>[$_]<f2>";
put "涨跌幅: $temp0<data><diff>[$_]<f3>%";
put "跌涨额: $temp0<data><diff>[$_]<f4>";
put "开盘价: $temp0<data><diff>[$_]<f17>";
put "最高价: $temp0<data><diff>[$_]<f15>";
put "最低价: $temp0<data><diff>[$_]<f16>";
put "昨收价: $temp0<data><diff>[$_]<f18>";
put "总市值: $temp0<data><diff>[$_]<f20>";
put "市盈率: $temp0<data><diff>[$_]<f9>";
put "****************************************";
}
}
put "ERROR: $!" if $!;
put "Program end!";
然后使用powershell
raku fucktest.pl6 >> USAstockinfo.txt
将结果输出到txt文件,结果如下图所示
usastock.PNG