Perl - 将带有日期的多个PDF文件下载到文本中

时间:2012-01-11 06:36:34

标签: perl web-scraping

我只是一名初学者,正在学习并尝试在此刻实施一系列事情。

我正在尝试从在线PDF文件中获取文本。

我有一个代码正在下载单个文件:

#!/usr/bin/perl
use warnings;
use strict;
use POSIX 'strftime';
use LWP::Simple;

my $url = 'http://www.gpo.gov/fdsys/pkg/CREC-2011-01-26/pdf/';
my $file = 'CREC-2011-01-26.pdf', localtime;

getstore( "$url/$file", $file );

我想知道是否有办法修改日期:比如说,在评论行中将日期更改为2011-01-25,并提取一年内的所有文件?

此外,有没有办法从在线来源获取文本而不下载文件。我很感激!

2 个答案:

答案 0 :(得分:1)

迭代2011年的所有日子:

use 5.010;
use DateTime qw();

my $counter = DateTime->new(year => 2011, month => 1, day => 1,);
my $end     = DateTime->new(year => 2012, month => 1, day => 1,);
while ($counter < $end) {
    say $counter->ymd(q(-));
    # 2011-01-01
    # 2011-01-02
    # 2011-01-03
    # 2011-01-04
    # ⋮
    # 2011-12-28
    # 2011-12-29
    # 2011-12-30
    # 2011-12-31
    $counter->add(days => 1);
}

  

只需从在线资源获取文字而无需下载文件

典型的self-answered question。该函数是get。请阅读您正在使用的软件的文档。

答案 1 :(得分:-2)

Perl有“for loop”。它们将是您尝试跨所有日期下载文件的好方法。您最终可能会有两个嵌套循环,一个用于几个月,一个用于日期。了解更多信息:

  

http://perl.about.com/od/perltutorials/a/forloop_2.htm

请不要忘记尊重版权,并引用参考文献。