0

我想从页面中提取所有链接。我正在使用HTML:LinkExtor. 如何提取仅指向 HTML 内容页面的所有链接?

我也无法提取这些类型的链接:

javascript:openpopup('http://www.admissions.college.harvard.edu/financial_aid/index.html'),

编辑:HTML 页面 - 文本/html。我没有索引图片等。

4

3 回答 3

2

是的,HTML::LinkExtor 不理解 javascript。事实上,您不太可能得到任何可以识别嵌入在 javascript 中的 URL 的东西,因为这通常需要运行实际代码。

于 2009-11-25T20:50:22.387 回答
1

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/'); 
于 2009-11-25T21:22:10.043 回答
0

对于大多数链接收集,我会使用WWW::Mechanize 。除此之外,我会自己做匹配:

my @links = $content =~ m`javascript:openpopup\('([^\']+)'`g;
于 2009-11-25T21:24:34.513 回答