我如何在 Perl 中使用 WWW::Mechanize::Firefox 和 find_link_dom 找到第二个 link 出现?
How do I find the second link occurance using WWW::Mechanize::Firefox and find_link_dom in Perl?
我正在使用 find_link_dom,它正在工作...找到第一个匹配的 link。我需要找到第二个。这是我的台词:
my $link = $mech->find_link_dom ( text_regex => 'abc' );
有没有办法让这个命令 return 第二个 link 匹配?
在有人评论说我需要更改我的搜索条件之前,文本是一样的。唯一不同的是 url,我不知道应该选择哪个 url。我需要符合上述搜索条件的第二个 link。
documentation 表示 returns 对象 。那是复数。还有这段代码。注意 for
.
print $_->{innerHTML} . "\n"
for $mech->find_link_dom( text_contains => 'CPAN' );
所以您可以在列表上下文中调用它来获取所有找到的链接,或者只获取您想要的链接。
( undef, my $link ) = $mech->find_link_dom ( text_regex => 'abc' );
那应该给你第二个。
或者,抓取所有这些并输出,看看发生了什么。
use Data::Printer;
my @links = $mech->find_link_dom ( text_regex => 'abc' );
p @links
或者,您可以使用选项 n
,这是一个基于 1 的索引。
my $second_link = $mech->find_link_dom( text_regex => 'abc', n => 2 );
有一个 second method,来自@simbabque 文档参考,我认为你应该尝试:
$mech->find_all_links_dom %options
print $_->{innerHTML} . "\n"
for $mech->find_all_links_dom( text_regex => qr/google/i );
Finds all matching linky DOM nodes in the document. The options are documented in ->find_link_dom.
Returns them as list or an array reference, depending on context.
This defaults to not look through child frames.
我正在使用 find_link_dom,它正在工作...找到第一个匹配的 link。我需要找到第二个。这是我的台词:
my $link = $mech->find_link_dom ( text_regex => 'abc' );
有没有办法让这个命令 return 第二个 link 匹配?
在有人评论说我需要更改我的搜索条件之前,文本是一样的。唯一不同的是 url,我不知道应该选择哪个 url。我需要符合上述搜索条件的第二个 link。
documentation 表示 returns 对象 。那是复数。还有这段代码。注意 for
.
print $_->{innerHTML} . "\n" for $mech->find_link_dom( text_contains => 'CPAN' );
所以您可以在列表上下文中调用它来获取所有找到的链接,或者只获取您想要的链接。
( undef, my $link ) = $mech->find_link_dom ( text_regex => 'abc' );
那应该给你第二个。
或者,抓取所有这些并输出,看看发生了什么。
use Data::Printer;
my @links = $mech->find_link_dom ( text_regex => 'abc' );
p @links
或者,您可以使用选项 n
,这是一个基于 1 的索引。
my $second_link = $mech->find_link_dom( text_regex => 'abc', n => 2 );
有一个 second method,来自@simbabque 文档参考,我认为你应该尝试:
$mech->find_all_links_dom %options
print $_->{innerHTML} . "\n"
for $mech->find_all_links_dom( text_regex => qr/google/i );
Finds all matching linky DOM nodes in the document. The options are documented in ->find_link_dom.
Returns them as list or an array reference, depending on context.
This defaults to not look through child frames.