Скачать конкретные изображения - PullRequest
1 голос
/ 31 мая 2010

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

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 Ответ

2 голосов
/ 31 мая 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...