Я пытаюсь автоматически войти на веб-сайте, используя Perl с WWW :: Mechanize .
Что я делаю:
$bot = WWW::Mechanize->new();
$bot->cookie_jar(
HTTP::Cookies->new(
file => "cookies.txt",
autosave => 1,
ignore_discard => 1,
)
);
$response = $bot->get( 'http://blah.foo/login' );
$bot->form_number(1);
$bot->field( usern => 'user' );
$bot->field( pass => 'pass' );
$response =$bot->click();
print $response->content();
$response = $bot->get( 'http://blah.foo' );
print $response->content();
Логин работает, но когда я загружаю страницу, он говорит мне, что я не подключен.
Вы видите, что я храню куки в файле. Теперь, если я перезапущу скрипт без части входа в систему, он говорит, что я подключен ...
Кто-нибудь понимает это странное поведение?
Редактировать : На самом деле я заметил, что проблема возникает и с в некоторых веб-браузерах на определенной платформе . На странице написано "Не авторизован". Тем не менее, достаточно перезагрузить страницу для входа в систему.
В сценарии я попытался выполнить двойной переход, но он не работает лучше. Единственный способ - запустить его дважды.
Он работал с curl , когда я делал последний запрос дважды.