2012-07-10 54 views
1

我已经在perl中使用WWW :: Mechanize进行站点抓取应用程序。
使用WWW在perl站点抓取::机械化

当我要通过WWW :: Mechanize登录特定网站时,我遇到了一些困难。我已经通过了一些WWW :: Mechanize的例子。但我找不到我的问题。 我在下面提到我的代码。

#!/usr/bin/perl -w 

use strict; 
use WWW::Mechanize; 
use HTTP::Cookies; 
use Crypt::SSLeay; 
my $agent = WWW::Mechanize->new(noproxy => 0); 
$agent->cookie_jar(HTTP::Cookies->new()); 
$agent->agent('Mozilla/5.0'); 
$agent->proxy(['https', 'http', 'ftp'], 'http://proxy.rcapl.com:3128'); 
$agent->get("http://www.facebook.com"); 
my $re=$agent->submit_form(
     form_number => 1, 
     fields  => { 
      Email => '[email protected]', 
      Passwd =>'xyz' 
     } 
    ); 
print $re->content(); 

当我运行它说的代码:

发布信息时出错https://www.facebook.com/login.php?login_attempt=1:在./test.pl线11

未实现任何人能告诉什么错上代码。我是否需要设置Facebook发送登录的所有参数?

+0

当然,我做了。谢谢你让我纠正路径 – Amila 2012-07-10 06:30:34

+0

@daxim:我删除了代理方法并运行它。然后它出现:错误POSTing https://www.facebook.com/login.php?login_attempt = 1:无法连接到proxy.rcapl.com:3128(坏服务'3128 /')在..有什么地方获得代理设置。我工作在Ubuntu和我通过终端运行。不过我有麻烦了,你告诉我错过了什么? – Amila 2012-07-10 08:14:22

+0

@daxim:修复了错误。你说的是真的。非常感谢你 – Amila 2012-07-10 08:24:03

回答

1

代理故障:

Error GETing http://www.facebook.com: Can't connect to proxy.rcapl.com:3128 (Bad hostname) at so11406791.pl line 11. 

该方案适用于我,而不调用代理方法。删除这个。

+0

确认后,从评论部分移动了以前的投机答案。 – daxim 2012-07-10 11:51:49