-2

我有这个应该填写http://faceoook.com/recover.php上的电子邮件表格 ,如您所知,您可以通过电子邮件、姓名或电话号码进行搜索。所以我试图通过电子邮件搜索,并在搜索完成后获取该页面的内容以查看是否找到了配置文件,但代码似乎不起作用。

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;
4

2 回答 2

1
  • use strict
  • 使其在下编译strict
  • 查看手册页,您的代码LWP::UserAgent存在问题,您必须自己发现,以便记住
  • 根据手册页中使用的约定检查您的变量名称
  • 查看方法(考虑到 Facebook 有一个 API,IIRC)
  • 无需转义正则表达式中的单引号
于 2012-06-05T06:41:40.293 回答
0

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

还将任何隐藏字段添加到您的%data.

查看页面的 HTML 代码(或使用某种形式的检查器)以获取正确的 URL 和隐藏字段(javascript 代码,如果存在,可能会使事情进一步复杂化)。

然后use strictuse warnings以及)正如 Lumi 已经说过的那样。

于 2012-06-05T08:09:51.033 回答