我正在尝试使用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();
登录有效,但是当我加载页面时,它告诉我我没有连接。
您会看到我将 cookie 存储在一个文件中。现在,如果我在没有登录部分的情况下重新启动脚本,它表示我已连接......
有人理解这种奇怪的行为吗?
编辑:事实上,我注意到某些平台上的某些网络浏览器也会出现问题。页面显示“未登录”。但是,重新加载要登录的页面就足够了。
在脚本中,我尝试进行双重获取,但效果并不好。唯一的方法是启动它两次。
当我两次执行最后一个请求时,它与curl一起工作。