如何更改我的正则表达式以获得与WWW :: Mechanize不同的一组图像?

问题描述:

我正在为网站制作一个网络抓取工具,我必须下载图像。我目前使用WWW::Mechanize,做:如何更改我的正则表达式以获得与WWW :: Mechanize不同的一组图像?

my @images=$mech->find_all_images(url_regex => qr/smallThumb/i); 

这给我的一切,在URL中有smallThumb图像。

如何将smallThumb更改为zoom,同时保留之前有smallThumb的链接?

+2

是否要匹配包含'smallThumb' *和*'zoom'的URL?或者你想得到两个单独的列表,一个包含'smallThumb'图像,另一个包含'zoom'图像? – ThisSuitIsBlackNot 2015-02-06 17:56:05

+1

你已经试过了什么代码?请参阅[我可以在这里询问哪些主题?](http://stackoverflow.com/help/on-topic),[我如何提出一个好问题?](http://stackoverflow.com/help/how -to-ask)和[如何创建最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。 – Makyen 2015-02-06 17:56:14

你可以这样做:

my @smallthumbs = $mech->find_all_images(url_regex => qr/smallThumb/i); 
my @zooms  = $mech->find_all_images(url_regex => qr/zoom/i); 
my @allimages = (@smallthumbs, @zooms); 

这里的风险是,你可以有适合这两个类别的URL,并得到一个傻瓜。

你也可以去正则表达式。

my @smallthumbs_or_zooms = $mech->find_all_images(url_regex => qr/smallThumb|zoom/i); 
+0

谢谢Andy的回复。我已经在做这些捣乱的东西,但结果并不是我们想要的。我想用smallThumb保留网址,当我用正则表达式替换smallthumb时,还需要url。任何帮助Guru。 – 2015-02-07 06:03:17

+0

我有我的@ smallthumbs = {a.smallThumb.jpg,b.smallThumb.jpg},我想我的@ smallandzoom = {a.smallThumb.jpg,b.smallThumb.jpg,a.zoom.jpg,b.zoom。 JPG} – 2015-02-07 06:16:53