我有一个Perl脚本,我在Strawberry Perl中运行,我使用WWW :: Mechanize登录Facebook。对于一个简短的背景,我使用我的脚本自动化偶尔的“排行榜”,为我在我的朋友群中发明的一个有趣的小游戏。我根据某些帖子分配积分,目标是获得最多积分。非常简单。这个脚本是完整的,它在过去对我有用(我上次在4天前运行它)。但是,我今天无法登录Facebook。我将表单提交后的内容转储到HTML文件中,看来我已经返回登录界面并显示一个红色错误框:
需要Cookies
您的浏览器未启用Cookie。请在浏览器偏好设置中启用Cookie以继续。
根据我的理解,WWW :: Mechanize具有自动cookie - 换句话说,默认构造函数,机器人应该接受cookie。应该由浏览器启用Cookie。我不应该看到这个屏幕,对吧?
我已经阅读并尝试过WWW:Mechanize和HTTP :: Cookies,但无论我尝试什么(每个方向都使用cookie jar),我都无法通过这个“需要cookie”的错误。
这是我的代码,没有任何实验性的毛病,非常简单。
use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
$mech->get("https://www.facebook.com/login.php");
$mech->submit_form(
fields => {
email => '<my email here>',
pass => '<my password here>',
}
);
open($out, ">", "output_page.html") or die "Can't open output_page.html: $!";
print $out $mech->content;