2016-06-07 7 views
1

Ich benutze das Perl Web :: Scraper-Modul, um eine img src von einer Zazzle-Produktseite, die das Ergebnis einer API-Aufruf ist zu holen.Web Scraping voll img src von dynamischen Website mit Perl

Wenn ich einen Webbrowser verwende, um die Seitenquelle anzuzeigen, hat das Bild einen vollständigen Pfad (ab?). Wenn ich den HTML-Code mit einem Perl-Skript abrufe (ich habe auch File :: Fetch ausprobiert), bekomme ich nur bis ".jpg".

Browser Seite Quelle erzeugt diese img src:

http://rlv.zcache.com/coat_of_arms_t_shirt-rb35fa7573d9448a4aeed82f56d98c523_j2nhl_512.jpg?t_supporters_iid=18c7f0d0-5bf8-4aa5-b6b8-5151099cc0ad

Perl-Skript ruft diese img src:

http://rlv.zcache.com/coat_of_arms_t_shirt-rb35fa7573d9448a4aeed82f56d98c523_j2nhl_512.jpg

Ist es möglich, die volle src von dieser Art von Website abrufen Verwenden eines Perl-Skripts?

Hier ist das Perl-Skript:

#!/usr/bin/perl 

use URI; 
use Web::Scraper; 

my $api_call = "http://www.zazzle.com/api/create/at-238543087866915480?rf=238543087866915480&ax=linkover&pd=235262722863405468&fwd=productpage&ed=true&supporters=http%3A%2F%2Fcoadb-dev.com%2Fwp-content%2Fprocessed_images%2Firvine%2Ffull_size%2Firvine-arms-1.png"; 

my $image_scraper = scraper { 

    process ".ZazzleWidgetsSppMainView-realviewCrop", "images[]" => scraper { 

     process "img", src => '@src'; 

    }; 
}; 

my $res = $image_scraper->scrape(URI->new($api_call)); 

for my $img (@{$res->{images}}) { 

    print $img->{src} . "\n"; 

} 
+0

Meine Lösung war WWW :: Scripter mit WWW :: Scripter :: Plugin :: JavaScript und Web :: Scraper zur Verarbeitung des zurückgegebenen Inhalts zu installieren. – Jonathan

+1

^Würdest du das als Antwort unten hinzufügen, Jonathan? Sie können dann auf das nebenstehende Häkchen klicken, um diese Frage als gelöst zu markieren. – halfer

Antwort

0

Meine Lösung war die Installation WWW :: Autor mit WWW :: Autor :: Plugin :: JavaScript (und Web :: Scraper für die Verarbeitung der zurück Inhalt).

Die oben genannten Plugins konnten auf den dynamisch generierten Inhalt des Javascript zugreifen. Es wurden keine zusätzlichen Module benötigt.

Vielen Dank!