2009-11-25 51 views
0

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

我也不能提取这些类型的链接:

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

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

+2

“HTML内容页面只是”究竟是什么?换句话说:你不想提取什么样的链接? – innaM

回答

2

是的,HTML :: LinkExtor不理解JavaScript。事实上,很可能你会得到什么,它可以识别嵌入在JavaScript中的URL,只是因为这通常需要运行实际的代码。

1

Perl将有很多方法通过蛮力来做到这一点。您可以使用推/拉分析器在标签之间跳转。您可能只需浏览整个页面,并通过链接或JavaScript中的链接对其进行正则表达式化。您是否看过WWW::Mechanize::Plugin::JavaScriptWWW::Mechanize模块是一个网站最好的朋友(不是你想要的)。我以前使用过这个模块,可以说它是CPAN上最好的Perl模块之一。

下面是来自CPAN一个例子: 设置命名变量给出

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

这是一个很棒的模块,它的FAQ非常有趣,特别是因为有那么多人要求javascript的支持...... http://search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize/ FAQ.pod – AmbroseChapel

0

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

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