WWW::Mechanize: 下载特定图片
WWW::Mechanize: Download a specific image
我正在尝试下载 DNA 序列的表达数据。在页面上,图表(一个 png 图像)总是页面上的第 6、7 或 8 个图像,但我不想每次都下载 2 个额外的图像。
检查页面上的图像会产生 <img src="../trash/hgc/gtexGene_genome_6d0b_5d5220.png" border="1">
,尽管图像 link 中的最后几个数字每次都会发生变化。
在我的代码中,我有
my $image = $mech1->find_image( alt_regex => qr/gtexGene/i );;
$mech1->get($image -> URI);
$mech1->save_content("exp.png");
这是行不通的。
我如何才能下载只给出 link 的某些内容的图像?
您正在使用 alt_regex
,它正在对 alt
属性进行模式匹配。你要的是src
属性,所以你需要to use url_regex
instead.
url => 'string',
and url_regex => qr/regex/,
Matches the URL of the image against string or regex, as appropriate. The URL may be a relative URL, like foo/bar.html, depending on how it's coded on the page.
所以你的代码应该是这样的。
my $image = $mech->find_image( url_regex => qr/gtexGene/i );
如果您确实希望它不区分大小写,则仅使用 /i
修饰符来区分大小写。
我正在尝试下载 DNA 序列的表达数据。在页面上,图表(一个 png 图像)总是页面上的第 6、7 或 8 个图像,但我不想每次都下载 2 个额外的图像。
检查页面上的图像会产生 <img src="../trash/hgc/gtexGene_genome_6d0b_5d5220.png" border="1">
,尽管图像 link 中的最后几个数字每次都会发生变化。
在我的代码中,我有
my $image = $mech1->find_image( alt_regex => qr/gtexGene/i );;
$mech1->get($image -> URI);
$mech1->save_content("exp.png");
这是行不通的。
我如何才能下载只给出 link 的某些内容的图像?
您正在使用 alt_regex
,它正在对 alt
属性进行模式匹配。你要的是src
属性,所以你需要to use url_regex
instead.
url => 'string',
andurl_regex => qr/regex/,
Matches the URL of the image against string or regex, as appropriate. The URL may be a relative URL, like foo/bar.html, depending on how it's coded on the page.
所以你的代码应该是这样的。
my $image = $mech->find_image( url_regex => qr/gtexGene/i );
如果您确实希望它不区分大小写,则仅使用 /i
修饰符来区分大小写。