1

以下は機能しています:しかし、コンテンツにアクセスするために認証が必要なWebサイトからファイルをダウンロードしようとしています(おそらく24時間で期限切れになるCookieを保存します)。

この認証をウェブサイトに提供する方法は? 認証されていないユーザーが URL (または Web サイト) にアクセスすると、認証ページにリダイレクトされ、そこでユーザー ID とパスワードを入力して Enter キー (ログイン ボタン) を押す必要があります。認証制御の後、最初に要求した URL に自動的に戻ります。

これは私がこれまでに持っているもので、認証を必要としないWebサイトで機能しています:

    #!/usr/bin/perl
    use strict;
    use warnings;
    use LWP;
    use Data::Dumper;

    my $ua = LWP::UserAgent->new;
    my $agent = "my-lwp agent";
    $ua->agent($agent);
    $ENV{HTTPS_PROXY} = 'http://myproxy:8080';

    my $req = HTTP::Request->new(GET => 'https://mail.yahoo.com');
    $req->content_type('text/html');
    $req->protocol('HTTP/1.0');

    my $response = $ua->request($req);
     if ($response->is_success) {
         print "1 success\n";
     }
     else {
        print "1 error\n";
     }
    print Dumper $response;

ここで、認証が必要な URL: https://myurl.com/file.docからこのファイルをダウンロードする必要があります : ユーザー名/パスワード。

問題定義の追加: 私の状況で通常のブラウザを使用する方法は次のとおりです:...

  1. ブラウザに URL を投稿してください: https://myurl/files/file.doc
  2. ログオン ページが表示されます (URL は同じように見えます)。
  3. フィールド名を入力してください: ユーザー名/パスワード
  4. 「OK」ボタンを押します (フィールド名 btnSubmit)

    ログインに成功した後:

  5. 新しいページを取得します: https://newurl/pagSuccess/
  6. このページで [OK] をクリックする必要があります (目的の場所に戻るには...)
  7. 次に、ブラウザ ダイアログが表示されます。

    (ラジオ ボタン) [ファイルを保存] を選択し、[OK] を押します。

  8. あなたは終わった!!! ローカルに保存されたファイル。

4

2 に答える 2

5

これを処理するには、 Mechanizeなどを使用することをお勧めします。セッションCookieを処理し、ログイン用のフォームを識別して入力するための便利なツールを提供します。

于 2011-11-22T17:40:07.927 に答える
1

オブジェクトのcredentialsメソッドをLWP::UserAgent見てください。

于 2011-11-22T17:51:42.540 に答える