Как написать базовый Perl-скрипт для многократного вызова URL с одним изменяющимся параметром в URL ...? - PullRequest
0 голосов
/ 04 июля 2019

Я хочу позвонить по следующему URL-адресу в формате цикла, вызывая его один раз для каждого биржевого символа, указанного в файле .TXT. Там, где «MSFT» указан ниже, это должна быть переменная, которая будет меняться для каждого значения, указанного в файле .TXT (один символ акции на строку).

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

Как будет выглядеть код PERL для запуска этого цикла URL? Или для этого есть лучший язык сценариев?

Спасибо за вашу помощь.

Просто начинаю с этого

1 Ответ

0 голосов
/ 04 июля 2019

Я обычно использую 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 общедоступным, рассмотрите возможность его изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...