2016-06-07 70 views
1

我使用Perl Web :: Scraper模塊從Zazzle產品頁面獲取img src,這是一個API調用的結果。使用Perl從動態網站抓取完整的img src

如果我使用Web瀏覽器查看頁面源,則圖像具有完整路徑(從?起)。當我使用Perl腳本檢索HTML(我也嘗試了File :: Fetch)時,我只能得到「.jpg」。

瀏覽器頁面源產生這個IMG SRC:

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

Perl腳本檢索此IMG SRC:

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

是否有可能從這類網站檢索完整的SRC使用Perl腳本?

下面是Perl腳本:與WWW

#!/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

我的解決方案是用WWW :: Scripter :: Plugin :: JavaScript和Web :: Scraper安裝WWW :: Scripter來處理返回的內容。 – Jonathan

+1

^你想補充說下面的答案,喬納森?然後,您可以單擊相鄰的刻度標記以將此問題設置爲已解決。 – halfer

回答

0

我的解決辦法安裝WWW ::腳本編寫者::腳本編寫者::插件:: JavaScript的(和Web ::刮板用於處理返回的內容)。

上述插件能夠從Javascript訪問動態生成的內容。不需要額外的模塊。

謝謝!