用于下载公共数据的脚本

时间:2019-04-08 15:14:36

标签: perl

我正在使用下面的perl脚本下载“DiárioOficial daUnião”(巴西公开文件,每天收集并发布联邦政府的正式文件)。它工作正常,但我尝试添加以下功能:

  1. 下载一段时间,例如从2010年1月1日到2010年12月31日。
  2. 将文件定向到特定文件夹

我无法在每个期间下载(例如,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" }
}

0 个答案:

没有答案