使用HTML :: Form填写perl中的表单

时间:2013-08-26 00:58:30

标签: perl html-form

我正在尝试在单独的页面上填写表单并返回数据,但我的主机不支持www :: mechanize模块。我看到HTML :: FORM会完成同样的事情,但我收到了错误

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

1 个答案:

答案 0 :(得分:2)

parse的第一个参数是HTML文档本身,但不是URL。

  

必需的参数是要解析的HTML文档($ html_document)   和用于检索文档的URI($ base_uri)。基URI是   需要解析相对动作URI。提供的HTML文档   应该是Unicode字符串(或US-ASCII)。

所以你需要先get这个文件(用LWP :: UserAgent)和解析响应:

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

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