在元素中获取HTML我使用WWW::Mechanize
在HTML页面中提取特殊链接。使用WWW :: Mechanize
my $mech = WWW::Mechanize->new();
$mech->get($uri);
my @links = $mech->find_all_links(url_regex => qr/cgi-bin/);
for my $link (@links) {
# try to get everything between <a href="[...]">HERE</a>
}
的链接看起来像这样
<a href="[...]"><div><div><span>foo bar</span> I WANT THIS TEXT</div></div></a>
通过使用$link->text
我得到foo bar I WANT THIS TEXT
不知道该文本是<span>
元素中。
有什么方法可以获取原始HTML代码而不是剥离文本?
换句话说,我需要找到一种方法,只需I WANT THIS TEXT
而不知道<span>
标记中的确切文本。
不相信'@ links'中的东西我相信。根据该模块的代码(https://metacpan.org/source/OALDERS/WWW-Mechanize-1.84/lib/WWW/Mechanize/Link.pm),他们不知道它们来自哪里。我认为你必须从机械化中抓取整个页面的HTML并使用不同的分析器。 – simbabque
https://metacpan.org/source/OALDERS/WWW-Mechanize-1.84/lib/WWW/Mechanize.pm#L1509是TokeParser的东西变成了WWW :: Mechanize :: Link对象的地方。我不明白你会如何解决这个问题。我建议在'$ mech-> content'中使用不同的解析器。 – simbabque
请提供一个示例HTML页面进行测试。 – Borodin