如何在JavaScript中提取指向Perl中的HTML页面的链接?

时间:2009-11-25 20:38:55

标签: perl hyperlink extract web-crawler

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

我也无法提取这些链接:

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

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

3 个答案:

答案 0 :(得分:2)

是的,HTML :: LinkExtor不懂javascript。实际上,你很可能会得到识别javascript中嵌入的URL的任何,因为这通常需要运行实际的代码。

答案 1 :(得分:1)

Perl将有很多方法可以通过蛮力来做到这一点。您可以使用Push / Pull Parser在标签之间跳转。您可能只是啜饮整个页面并通过它来获取链接或JavaScript中的链接。

你看过WWW::Mechanize::Plugin::JavaScript了吗? WWW::Mechanize模块是一个web botting最好的朋友(不是你想要的机器人)。我之前使用过这个模块,可以说它是CPAN上最好的Perl模块之一。

这是CPAN的一个例子: 将命名变量设置为给定值

$m->plugin('JavaScript')->set(
      'document', 'location', 'href' => 'http://www.perl.org/'); 

答案 2 :(得分:0)

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

my @links = $content =~ m`javascript:openpopup\('([^\']+)'`g;