Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 用于下载公共数据的脚本_Perl - Fatal编程技术网

Perl 用于下载公共数据的脚本

Perl 用于下载公共数据的脚本,perl,Perl,我正在使用下面的perl脚本下载“Diário of icial da União”(一份巴西公共文件,每天收集和发布联邦政府的正式法案)。它工作正常,但我正在尝试添加以下功能: 下载一段时间,例如,从2010年1月1日到2010年12月31日 将文件定向到特定文件夹 我无法按时段下载(例如2016年1月1日至2016年12月31日)。我只能在今天或某一天下载这些文件。有什么建议吗 $|=1; use DateTime; # my $dt=DateTime->now; my $dt=Da

我正在使用下面的perl脚本下载“Diário of icial da União”(一份巴西公共文件,每天收集和发布联邦政府的正式法案)。它工作正常,但我正在尝试添加以下功能:

  • 下载一段时间,例如,从2010年1月1日到2010年12月31日
  • 将文件定向到特定文件夹
  • 我无法按时段下载(例如2016年1月1日至2016年12月31日)。我只能在今天或某一天下载这些文件。有什么建议吗

    $|=1;
    use DateTime;
    # my $dt=DateTime->now; 
    my $dt=DateTime->new(
       year       => 1995,
       month      => 01,
       day        => 02,
    );
    $ymd=$dt->ymd; 
    $dmy=$dt->dmy("/"); 
    
    print "Data: $dmy\n";
    
    use LWP::Simple;
    use LWP::Simple::Cookies ( autosave => 1,
        file => "lwp_cookies.dat" ); 
    
    my $jornal;
    my @jornais=('1','2','3','515','529','530','531','521','525', '2000');
    foreach $jornal (@jornais) {
        print "Jornal: $jornal\n";
        $doc = get("http://pesquisa.in.gov.br/imprensa/jsp/visualiza/index.jsp?jornal=$jornal&pagina=1&data=$dmy");
        if ( $doc=~/&totalArquivos=(\d*)"/ ){
            $paginas=$1;
            print "Paginas: $paginas\n";
            foreach $i ( 1..$paginas) { 
                my $arq="IN-Jornal $jornal - $ymd - pag_$i.pdf";
                print "$arq (existe)\n" if -e $arq; 
                getstore("http://pesquisa.in.gov.br/imprensa/servlet/INPDFViewer?jornal=$jornal&pagina=$i&data=$dmy&captchafield=firstAccess",$arq ) && print "$arq (ok)\n" if !-e $arq;
                if ( $i == 1) {
                        use CAM::PDF; 
                        $bigpdf = CAM::PDF->new("$arq");
                } else {
                        my $anotherpdf = CAM::PDF->new("$arq");   
                        $bigpdf->appendPDF($anotherpdf);  
                }
                sleep 1;
            }
            $bigpdf->cleanoutput("IN-Jornal $jornal - $ymd.pdf"); 
         } else { print "IN-Jornal $jornal não disponível!\n" }
    }
    

    你的问题是什么?我猜你需要帮助做(1)和(2)。如果是这样,请告诉我们您尝试了什么,遇到了什么困难。@Dada我无法按时段下载(例如2016年1月1日至2016年12月31日)。我只能在今天或某一天下载这些文件。有什么建议吗?嗯,你可以创建一系列的天数,你想下载。。告诉你如何创建一系列的天数。你的问题是什么?我猜你需要帮助做(1)和(2)。如果是这样,请告诉我们您尝试了什么,遇到了什么困难。@Dada我无法按时段下载(例如2016年1月1日至2016年12月31日)。我只能在今天或某一天下载这些文件。有什么建议吗?嗯,你可以创建一系列的天数,你想下载。。告诉您如何创建天数范围。