У меня есть набор файлов HTML, которые используются в качестве интерфейса для доступа к некоторым файлам на сервере. Существует основная страница, которая ссылается на различные страницы отчета, которые затем имеют ссылки на файлы. Я пытаюсь получить связанные файлы на каждой странице и определить, являются ли они актуальными. Тем не менее, я делаю это шаг за шагом, и я хочу, чтобы этот фрагмент разобрался в первую очередь.WWW :: Mechanize следующая ссылка не найдена ссылка
Для справки, структура папок, как это:
//server/
|---pages/
|---+---MainPage.htm
|---+---reports/
|---+---+---Report1.htm
|---+---+---Report2.htm
Метод find_all_links()
получает ссылки, которые я хочу. Однако, когда я пытаюсь передать результирующие URL-адреса WWW :: Mechanize :: Link объектов в follow_link()
, он говорит, что файл не существует. Файл DOES существует, только не там, где он считает, что он существует. Как ни странно, после ссылки вручную в браузере работает просто отлично.
Ниже приведен мой код для решения этого вопроса.
use strict;
use warnings;
use WWW::Mechanize;
my $dir = '//server/pages';
chdir($dir);
my $mech = WWW::Mechanize->new();
$mech->get("file:$dir/MainPage.htm");
my @links = $mech->find_all_links(url_regex => qr/^\/reports\/.*/i);
foreach my $link (@links){
print $link->url(), "\n";
$mech->follow_link(url => $link->url());
# Get all links on this page and check the modified dates
...
$mech->back();
}
Он производит следующий вывод:
/reports/Report1.htm
Error GETing file://server/reports/Report1.htm: File `\\server\reports\Report1.htm` does not exist at script.pl line 15.
Путь к файлу он использует это неправильно, и именно поэтому он не может найти файл. Как я могу использовать правильный путь? Я также пробовал url_abs()
вместо url()
. Любая помощь, руководство и/или понимание будут с благодарностью оценены. Спасибо!
изменить ваши ссылки, чтобы использовать абсолютные пути, например, '...'. – ThisSuitIsBlackNot
@ThisSuitIsBlackNot: К сожалению, у меня нет контроля над чем-либо на стороне HTML-вещей. Я могу обрабатывать только существующий HTML в моем коде. –