我想从页面中提取所有链接。我正在使用HTML:LinkExtor
. 如何提取仅指向 HTML 内容页面的所有链接?
我也无法提取这些类型的链接:
javascript:openpopup('http://www.admissions.college.harvard.edu/financial_aid/index.html'),
编辑:HTML 页面 - 文本/html。我没有索引图片等。
我想从页面中提取所有链接。我正在使用HTML:LinkExtor
. 如何提取仅指向 HTML 内容页面的所有链接?
我也无法提取这些类型的链接:
javascript:openpopup('http://www.admissions.college.harvard.edu/financial_aid/index.html'),
编辑:HTML 页面 - 文本/html。我没有索引图片等。
是的,HTML::LinkExtor 不理解 javascript。事实上,您不太可能得到任何可以识别嵌入在 javascript 中的 URL 的东西,因为这通常需要运行实际代码。
Perl 将有很多方法通过蛮力来做到这一点。您可以使用 Push/Pull Parser 在标签之间跳转。您可能只需要 slurp 整个页面并通过它为链接或 JavaScript 中的链接进行正则表达式。
你看过WWW::Mechanize::Plugin::JavaScript吗?WWW::Mechanize模块是网络机器人最好的朋友(不是你想要机器人)。我以前使用过这个模块,可以说它是 CPAN 上最好的 Perl 模块之一。
这是来自 CPAN 的示例:将命名变量设置为给定的值
$m->plugin('JavaScript')->set(
'document', 'location', 'href' => 'http://www.perl.org/');
对于大多数链接收集,我会使用WWW::Mechanize 。除此之外,我会自己做匹配:
my @links = $content =~ m`javascript:openpopup\('([^\']+)'`g;