我正在尝试下载DNA序列的表达数据。在页面上,图形(一个png图像)始终是页面上的第6,第7或第8个图像,但我不想每次都下载2个额外的图像。
检查页面上的图像会产生<img src="../trash/hgc/gtexGene_genome_6d0b_5d5220.png" border="1">
,尽管每次图像链接中的最后几个数字都会改变。
在我的代码中,我有
my $image = $mech1->find_image( alt_regex => qr/gtexGene/i );;
$mech1->get($image -> URI);
$mech1->save_content("exp.png");
无效。
如何仅仅根据链接的某些内容下载图像?
答案 0 :(得分:3)
您正在使用alt_regex
,它正在对alt
属性进行模式匹配。您想要的是src
属性,因此您需要to use url_regex
instead。
url => 'string',
和url_regex => qr/regex/,
根据需要将图像的URL与字符串或正则表达式匹配。该网址可能是相对网址,例如foo / bar.html,具体取决于网页上的编码方式。
所以你的代码应该是这样的。
my $image = $mech->find_image( url_regex => qr/gtexGene/i );
如果您确实希望它不区分大小写,请仅使用/i
修饰符来区分大小写。