Модуль Perl, чтобы получить все страницы сайта? - PullRequest
3 голосов
/ 06 сентября 2010

Есть ли там какой-нибудь модуль, который может дать мне ссылки на все страницы сайта?

Зачем мне это нужно: я хочу сканировать некоторые сайты и искать в них теги, поиск только на главной странице недостаточен

Спасибо,

Ответы [ 4 ]

5 голосов
/ 06 сентября 2010

Классический способ сканирования сайтов в Perl - WWW :: Mechanize , который имеет метод links, который возвращает список всех ссылок со страницы. Вы можете получить страницу, получить с нее ссылки, а затем использовать метод follow_link () или get () для получения связанной страницы.

5 голосов
/ 06 сентября 2010

HTML :: SimpleLinkExtor немного проще, чем HTML :: LinkExtor .Вы можете проверить мою нерешительную попытку использовать мой инструмент для чтения веб-страниц , в котором есть часть кода, который вам, вероятно, понадобится.

2 голосов
/ 06 сентября 2010

Вы можете найти HTML :: LinkExtor использования.

1 голос
/ 06 сентября 2010

Другой способ сделать это - использовать 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, а также.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...