Facebook 使用perl的表单和POST

Facebook 使用perl的表单和POST,facebook,perl,forms,http,post,Facebook,Perl,Forms,Http,Post,我有这个,应该填在 如你所知,你可以通过电子邮件、姓名或电话号码进行搜索。 因此,我尝试通过电子邮件搜索,并在搜索完成后获取该页面的内容,以查看是否找到该配置文件,但代码似乎不起作用 use HTTP::Request::Common; use LWP::UserAgent; $email="blabla\@hotmail.com"; my %data=(email=>$email); my $user_agent = 'Mozilla/6.0'; my $Browser = LWP::

我有这个,应该填在 如你所知,你可以通过电子邮件、姓名或电话号码进行搜索。 因此,我尝试通过电子邮件搜索,并在搜索完成后获取该页面的内容,以查看是否找到该配置文件,但代码似乎不起作用

use HTTP::Request::Common;
use LWP::UserAgent;
$email="blabla\@hotmail.com";
my %data=(email=>$email);

my $user_agent = 'Mozilla/6.0';
my $Browser = LWP::UserAgent->new;
$Browser->agent($user_agent);
$ua=$Browser->post('https://www.facebook.com/recover.php',\%data);
if($ua->content=~/couldn\'t/){        #"couldn't" is part of the message displayed when                
print "Not Found";                    # input doesn't match
}
elsif ($ua->content=~/name/) {
print "Found";
}
else {
print "Not found"; 
}

$result=$ua->content;
open FILE,">","me.txt" or die $!;
print FILE $result;
close FILE;
  • 使用严格的
  • 让它在
    严格的
  • 查看
    LWP::UserAgent
    的手册页,您的代码有一个问题,您必须自己发现,以便记住
  • 根据手册页中使用的约定检查变量名
  • 回顾该方法(考虑到Facebook有一个API,IIRC)
  • 不需要在正则表达式中转义单引号

您应该将请求发布到表单操作字段中的URL(同时使用显示表单的页面的URL)

还要将任何隐藏字段添加到
%数据中

查看页面的HTML代码(或使用某种形式的表单检查器)以获得正确的URL和隐藏字段(javascript代码,如果存在,可能会使事情更加复杂)

然后像Lumi已经说过的那样,使用严格的
(以及使用警告)