2013-08-26 44 views
0

我想填寫表單在一個單獨的頁面上並返回數據,但是我的主機不支持www :: mechanize模塊。我看到HTML :: FORM完成同樣的事情,但我得到的錯誤用Perl填寫表單在perl中::表單

Can't call method "value" on an undefined value at G:\Programming\test.pl line 12. 

這裏是代碼我一直在

use strict; 
use LWP::Simple; 
use LWP::UserAgent; 
use HTML::Form; 

use HTML::Strip; 
my $base_uri = "UTF-8"; 
my $url = 'xxxxxxx'; 

my $form = HTML::Form->parse($url, $base_uri); 
$form->value(Zip => '74014'); 
my $ua = LWP::UserAgent->new; 
my $response = $ua->request($form->click); 

回答

2

parse第一個參數測試HTML文檔本身但不是URL。

所需的參數是要解析的HTML文檔($ html_document) 和用於檢索文檔($ base_uri)的URI。基本URI是 需要解析相對操作URI。提供的HTML文檔 應該是一個Unicode字符串(或US-ASCII)。

所以,你需要先get這個文檔(LWP ::用戶代理),並解析響應:

my $response = $ua->get($url); 

if ($response->is_success) { 
    my $form = HTML::Form->parse($response->decoded_content, $base_uri); 
    ... 
} 
else { 
    die $response->status_line; 
}