正则表达式 – 麻烦跟随与WWW :: Mechanize的图像链接
发布时间:2020-12-14 05:48:35 所属栏目:百科 来源:网络整理
导读:我正在研究Perl脚本以获得“当天的天文图像”并将其设置为我的壁纸.然后我会设置一个cronjob每天为我做这件事.但是我很难让脚本遵循导致全尺寸图像的图像链接,然后才下载它. ??我正在尝试类似下面的代码(请记住,我只是一个对Perl正则表达式不太了解的Perl初
我正在研究Perl脚本以获得“当天的天文图像”并将其设置为我的壁纸.然后我会设置一个cronjob每天为我做这件事.但是我很难让脚本遵循导致全尺寸图像的图像链接,然后才下载它.
??我正在尝试类似下面的代码(请记住,我只是一个对Perl正则表达式不太了解的Perl初学者): #!/usr/bin/perl -w use strict; use warnings; use WWW::Mechanize; my $url = "http://apod.nasa.gov/apod/astropix.html"; my $mech = WWW::Mechanize->new(); $mech->get($url); #debugging if ($mech->follow_link(url_regex=>qr/.(?:jpg|png)$/)){ print "Following the image link..."; }else{ print "Couldn't find the link..."; } my @img = $mech->find_image(alt_regex => qr/image/i); foreach my $img(@img){ $mech->get($img->url,':content_file'=>'astro.jpg'); } print "n"; exit(0); 任何帮助将非常感激! 解决方法
你的脚本几乎是正确的. NASA页面的结构是:
<html> <body> ... <a href="http://.../blah.jpg"><img src="http://.../blah-lowres.jpg"></a> ... </body> </html> 因此,如果$mech-> follow_link成功,则您已经拥有$mech->内容中的图像数据. 试试这个: $mech->get($url) or die "unable to get $url"; $mech->follow_link(url_regex => qr/.(jpg|png)z/) or die "unable to follow image link"; open(my $fh,">astro.jpg"); print {$fh} $mech->content; close($fh); print "saved image as astro.jpgn"; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读