2

我在通过 Perl 从表单中获取结果时遇到了一些困难。我相信我已经成功找到表单并将我想要的值提交到相应的字段,但不确定如何将响应对象变成有用的东西(如果我打印出来,它会显示如下)。

HTTP::Request=HASH(0x895b8ac)

这是相关代码(假设 $url 是正确的)


    my $ua = LWP::UserAgent->new;
    my $responce = $ua->get($url);
    my @form = HTML::Form->parse($responce);
    my $chosen = $form[0];
    $chosen->value('netid', $user);
    my $ro = $chosen->click('Search');

我该怎么做才能使 $ro 有用?

谢谢!

4

1 回答 1

2

要在单击时引用HTML::Form 文档:

单击的结果是一个HTTP::Request对象,如果您想获得服务器响应,则可以将其传递给LWP::UserAgent 。

所以你可以这样做:

my $ua = LWP::UserAgent->new;
my $response = $ua->get($url);
my @form = HTML::Form->parse($response);
my $chosen = $form[0];
$chosen->value('netid', $user);
my $ro = $chosen->click('Search');

# If you want to see what you're sending to the server:
print $ro->as_string;

# Fetch the server's response:
$response = $ua->request($ro);

你下一步做$response什么取决于你想要做什么。

PS“responce”通常拼写没有 C。但 HTTP 确实有拼写错误的历史。(我看着你,“推荐人”。)

于 2011-04-20T04:27:29.820 回答