通过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有用?
谢谢!
答案 0 :(得分:2)
点击HTML::Form docs点击:
单击的结果是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
的处理取决于您要做的事情。
P.S。 “响应”通常拼写没有C.但HTTP确实有拼写错误的历史。 (我在看着你,“Referer”。)