Perl 从目录中读取一些变量-以便使用mechanize解析它们

Perl 从目录中读取一些变量-以便使用mechanize解析它们,perl,parsing,firefox,mechanize,Perl,Parsing,Firefox,Mechanize,我有一个2500个网站的列表,需要抓取它们的缩略图截图。我该怎么做?我可以尝试用Perl Mechanize解析这些站点,比如这样 use WWW::Mechanize::Firefox; my $mech = WWW::Mechanize::Firefox->new(); $mech->get('http://google.com'); my $png = $mech->content_as_png(); 如何为所有不同的URL执行此操作?如何从文件中读取

我有一个2500个网站的列表,需要抓取它们的缩略图截图。我该怎么做?我可以尝试用Perl Mechanize解析这些站点,比如这样

  use WWW::Mechanize::Firefox;
  my $mech = WWW::Mechanize::Firefox->new();
  $mech->get('http://google.com');

  my $png = $mech->content_as_png();
如何为所有不同的URL执行此操作?如何从文件中读取它们?换句话说,我将URL存储在一个文件中。然后我把结果放在另一个目录里

从文档中:

返回呈现为PNG图像的给定选项卡或当前页面。全部的 参数是可选的$选项卡默认为当前选项卡。如果 给定坐标后,将剪切该矩形。坐标 应该是一个包含四个常用项的散列, 左、上、宽、高。这是特定于WWW::Mechanize::Firefox的


假设您的列表位于名为
list.txt的文件中:

open( my $fh, '<', 'list.txt') or die "Could not open list.txt: $!";
foreach my $url ( <$fh> ) {
    chomp $url;
    # Do your mechanize thing here using $url
}
close $fh;

open(my$fh),假设您的列表位于名为
list.txt的文件中:

open( my $fh, '<', 'list.txt') or die "Could not open list.txt: $!";
foreach my $url ( <$fh> ) {
    chomp $url;
    # Do your mechanize thing here using $url
}
close $fh;

open(my$fh),我想我明白了……你想要一个包含2500个URL的列表,每行一个,保存在一个文件中。然后你想要上面的脚本打开文件,读一行,然后检索网站?如果是这样,类似这样:

    Filename: urls.txt
    ------------------
    www.google.com
    www.cnn.com
    www.msnbc.com
    news.bbc.co.uk
    www.bing.com
    www.yahoo.com
然后代码:

    use WWW::Mechanize::Firefox;
    my $mech = WWW::Mechanize::Firefox->new();

    open(INPUT, "urls.txt") or die "Can't open file: $!";

    while (<INPUT>) {
      chomp;
      $mech->get($_);
      my $png = $mech->content_as_png();
    }
    close(INPUT);
    exit;
使用WWW::Mechanize::Firefox;
my$mech=WWW::Mechanize::Firefox->new();
打开(输入“url.txt”)或死“无法打开文件:$!”;
而(){
咀嚼;
$mech->get($\ux);
my$png=$mech->content_as_png();
}
关闭(输入);
出口

我想我明白了……您希望有一个包含2500个URL的列表,每行一个,保存在一个文件中。然后您希望上面的脚本打开文件,阅读一行,然后检索网站?如果是这样,类似这样:

    Filename: urls.txt
    ------------------
    www.google.com
    www.cnn.com
    www.msnbc.com
    news.bbc.co.uk
    www.bing.com
    www.yahoo.com
然后代码:

    use WWW::Mechanize::Firefox;
    my $mech = WWW::Mechanize::Firefox->new();

    open(INPUT, "urls.txt") or die "Can't open file: $!";

    while (<INPUT>) {
      chomp;
      $mech->get($_);
      my $png = $mech->content_as_png();
    }
    close(INPUT);
    exit;
使用WWW::Mechanize::Firefox;
my$mech=WWW::Mechanize::Firefox->new();
打开(输入“url.txt”)或死“无法打开文件:$!”;
而(){
咀嚼;
$mech->get($\ux);
my$png=$mech->content_as_png();
}
关闭(输入);
出口

由SO用户提供。由SO用户提供。Mechanize
->new()
操作是否可以从
while()中提升出来
loop?这会提高脚本的性能吗?的确,这很好。它只需要实例化一次。我会更新我的答案。嗨,托吉斯,你好,萨莫德-非常感谢你的回答。我测试了这个。当然会有很好的结果!Mechanize
->new()
操作可以从
while()中提升出来吗
loop?这会提高脚本的性能吗?事实上,这会很好。它只需要实例化一次。我会更新我的答案。嗨,托吉斯,你好,萨莫德-非常感谢你的回答。我测试了这个。当然,结果很好!嗨,非常感谢你的回答!!太棒了!谢谢你。你好。嗨,我的朋友非常感谢你的回答!!太棒了!谢谢你。问候。