那里有一个模块可以给我链接到网站的所有页面吗?
为什么我需要它:我想抓取一些网站并在其中搜索标签,仅在主页上搜索是不够的。
谢谢,
答案 0 :(得分:5)
在Perl中抓取网站的经典方法是WWW::Mechanize,它有一个链接方法,可以返回页面中所有链接的列表。您可以抓取页面,从中获取链接,然后使用follow_link()或get()方法获取链接页面。
答案 1 :(得分:5)
HTML::SimpleLinkExtor比HTML::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中。