2016-06-07 67 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访问动态生成的内容。不需要额外的模块。

谢谢!