1

更新が必要な Web ページと、認証済みの Web ページがあります。Web ページにアクセスしようとすると、ポップアップ ウィンドウが開き、ユーザー名とパスワードを要求されます。ポップアップ ウィンドウにユーザー名とパスワードを入力するにはどうすればよいですか。以下のコードを書きましたが、「Unauthorized」というエラー メッセージが表示されます。リンクを手動で提供すると、ポップアップが開き、キャンセルをクリックすると、同じ「無許可」メッセージが表示されます。以下のコードを変更して、ポップアップ ウィンドウにユーザー名とパスワードを入力し、ポップアップで [OK] ボタンをクリックするにはどうすればよいですか。

#!/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 サーバーのサーバー example.com には、ユーザー名とパスワードが必要です

ユーザー名とパスワードを入力するためのテキスト フィールドがあります。

4

1 に答える 1

2

WWW::Mechanize の credentials() メソッドを使用してみてください。

$agent->credentials( $username, $password );
于 2013-09-03T09:24:48.367 に答える