Загрузите определенные изображения

Я пытаюсь искать и загрузить определенные изображения / покрытие передней и задней части / веб-сайта, если найдено, но независимо от того, что я делаю я всегда загружаю только одного из них. Что я должен изменить в своем коде для загрузки их обоих, если найдено?

use strict;
use warnings;
use LWP;
use LWP::UserAgent;
use URI::Escape;
use HTTP::Status;

getCover(...);

sub getCover {

......


  while ($title_found =~ /'(http:\/\/images.blu-ray.com\/movies\/covers\/\d+_.*?)'/gis) {          
     $url = getSite($1);
     if ($title_found =~ /front/) {
        $filename = 'front.jpg';        
     }
     elsif ($title_found =~ /back/) {
        $filename = 'back.jpg';
     }
   }
   my $dir = 'somepath'.$filename;     
   open F, ">", $dir;          
        binmode F;
        print F $url;
   close F; 
   return 0;
}


sub getSite {
 $url = shift;

 print "URL: $url\n";

 my $r;
 my $ua = new LWP::UserAgent();

 $ua->agent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030312");

 my $req = new HTTP::Request GET => $url;

 $req->push_header("Accept-Language", "en");

 $req = $ua->prepare_request($req);

 my $res = $ua->request($req);
 my $rc = $res->code;

 if(is_success($rc)){
     $r = $res->as_string();
     $r = $res->content();
     }

     else {
     print "Failed\n";
     }

 return $r;
}    
1
задан Alexandr Ciornii 31 May 2010 в 07:12
поделиться

1 ответ

Попробуйте поместить часть, которая сохраняет в 'somepath'. $ Filename , внутри цикла while , а не вне его.

Кроме того, похоже, что $ title_found должен содержать несколько URL-адресов. В этом случае вам нужно сохранить $ 1 во временной переменной и искать в ней переднюю / заднюю часть вместо $ title_found . В противном случае вы сохраните обе обложки на front.jpg .

2
ответ дан 3 September 2019 в 00:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: