Facebook通过Perl WWW :: Mechanize登录,登录错误“Cookies Required”

时间:2015-07-08 05:00:25

标签: facebook perl cookies www-mechanize

我有一个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;

1 个答案:

答案 0 :(得分:0)

捕获您使用浏览器登录的会话(如果您使用的是Firefox,则可以使用firebug,并检查设置了哪些HTTP标头 - how-to。设置相同的标头你的脚本,包括用户代理。检查是否设置了相同的cookie。你可能会得到类似下面的内容:

btnLogin=[[UIButton alloc] initWithFrame:CGRectMake(80, h-90, w-160, 40)];
相关问题