在Perl中打开网页时,在弹出窗口中提供用户名和密码

时间:2013-09-03 07:56:38

标签: perl authentication

我有一个需要更新的网页及其经过身份验证的网页。当我尝试访问该网页时,会打开一个弹出窗口,询问用户名和密码。如何在弹出窗口中提供用户名和密码。我编写了下面的代码,但它给出了“未经授权”的错误消息。当我手动提供链接时,弹出窗口打开,我点击取消同样的“未授权”消息出现。如何更改以下代码以在弹出窗口中提供用户名和密码,然后单击弹出窗口上的“确定”按钮。

#!/usr/bin/perl
use LWP::UserAgent;
use WWW::Mechanize;
use HTTP::Cookies;
use Crypt::SSLeay;
use strict;
use warnings;

my $username="sqar";
my $password="Pal500";
my $agent = WWW::Mechanize->new(autocheck => [1]);
my $url = 'http://example.com/content/Jen%20Automation.doc';
$agent->get($url);
$agent->field("os_username", $username);
$agent->field("os_password", $password);
$agent->submit();
print "AFter login\n";
my @links = $agent->find_all_links();

foreach $lin(@links){

    unless ($lin->[0] =~ /^http?:\/\//i) {
            $lin->[0] = "$url" . $lin->[0];
    }
    print "$lin->[0]" ;
    print "\n";
}

弹出窗口显示消息:

  

WebDAV Server上的服务器example.com需要用户名和密码

以及用于输入用户名和密码的文本字段。

1 个答案:

答案 0 :(得分:2)

尝试使用WWW :: Mechanize中的credentials()方法。

$agent->credentials( $username, $password );