如何编写基本的Perl脚本来多次调用URL,而该URL中只有一个更改的参数...?

时间:2019-07-03 21:27:18

标签: perl

我想以循环格式调用以下URL,对.TXT文件中列出的每个股票代号调用一次。在下面列出“ MSFT”的地方,该变量需要针对.TXT文件中列出的每个值(每行一个股票代号)进行更改。

https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=MSFT&outputsize=full&apikey=1A4999U3ZOOGFQQZ&datatype=csv

运行此URL循环的PERL代码看起来如何?还是有一种更好的脚本语言可用于完成此任务?

感谢您的帮助。

就从这个开始吧

1 个答案:

答案 0 :(得分:0)

我通常将WWW::Mechanize用于类似的任务。如果符号中包含特殊字符,我也更喜欢URI

#!/usr/bin/perl
use warnings;
use strict;

use URI;
use WWW::Mechanize;

my $mech = 'WWW::Mechanize'->new;
my $uri = 'URI'->new('https://www.alphavantage.co/query');
my %params = (function   => 'TIME_SERIES_DAILY_ADJUSTED',
              outputsize => 'full',
              apikey     => '...',
              datatype   => 'csv');
while (my $symbol = <>) {
    chomp $symbol;
    my $url = $uri;
    $url->query_form(%params, symbol => $symbol);
    $mech->get($url);
    $mech->save_content("$symbol.csv");
}

您可能需要将get调用包装到eval中,并可能在失败时重试几次。另外,如果您确实公开了API密钥,请考虑对其进行更改。