获取网站所有页面的Perl模块?

时间:2010-09-06 17:07:35

标签: perl scripting module web-crawler

那里有一个模块可以给我链接到网站的所有页面吗?

为什么我需要它:我想抓取一些网站并在其中搜索标签,仅在主页上搜索是不够的。

谢谢,

4 个答案:

答案 0 :(得分:5)

在Perl中抓取网站的经典方法是WWW::Mechanize,它有一个链接方法,可以返回页面中所有链接的列表。您可以抓取页面,从中获取链接,然后使用follow_link()或get()方法获取链接页面。

答案 1 :(得分:5)

HTML::SimpleLinkExtorHTML::LinkExtor简单一点。您可以查看我对我webreaper tool的半心半意的尝试,其中包含您可能需要的一些代码。

答案 2 :(得分:2)

您可能会发现使用HTML::LinkExtor

答案 3 :(得分:1)

另一种方法是使用HTML::TreeBuilder从页面解析HTML。它返回一个对象树,您可以使用它来从页面中获取所有链接,它可以执行更多操作,例如根据您指定的正则表达式模式查找链接。查看HTML :: Element的文档以了解更多信息。

要查找页面中的所有链接:

use HTML::TreeBuilder;
use LWP::Simple;

my $url  = 'http://www.example.com/';
my $html = HTML::TreeBuilder->new_from_content(get($url));

my @links = $html->look_down('_tag'   => 'a');

我相信LWP :: Simple和HTML :: TreeBuilder也都包含在Ubuntu中。