2012-07-10 55 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