通过http打开远程文件

时间:2012-06-21 12:43:42

标签: perl http module screen-scraping

是否有像File :: Remote这样的perl模块,它可以通过http(只读)工作?像

这样的东西
$magic_module->open( SCRAPE, "http://somesite.com/");
while(<SCRAPE>)
{
  #do something     
}

4 个答案:

答案 0 :(得分:5)

是的,当然。您可以使用LWP::Simple

use LWP::Simple;
my $content = get $url;

不要忘记检查内容是否为空:

die "Can't download $url" unless defined $content;

$contentundef在下载过程中发生错误。

答案 1 :(得分:3)

您也可以使用File::Fetch模块:

File::Fetch
    ->new(uri => 'http://google.com/robots.txt')
    ->fetch(to => \(my $file));
say($file);

答案 2 :(得分:3)

使用HTTP::Tiny

use HTTP::Tiny qw();
my $response = HTTP::Tiny->new->get('http://example.com/');
if ($response->{success}) {
    print $response->{content};
}

答案 3 :(得分:2)

如果您希望统一接口同时处理本地,远程(HTTP / FTP)和其他任何文件,请使用IO::All模块。

use IO::All;

# reading local
my $handle = io("file.txt");
while(defined(my $line = $handle->getline)){
    print $line
}

# reading remote
$handle = io("http://google.com");
while(defined(my $line = $handle->getline)){
    print $line
}