フォーラムで既に尋ねられた質問のように聞こえますが、ここでは少し異なるシナリオがあると思います..
Perl を使用して、認証が必要な Web サイトにログオンしようとしています。このタスクを達成するための最も便利なツールは、フォームに入力して送信するのが非常に簡単な WWW::Mechanize モジュールを使用することであることに既に気付きました。
私の場合、次のような問題が発生します。
- 入力したいフィールドに関連する「フォーム」がないようです。代わりに、フィールドは table にラップされます
<table></table>
。 - ボタン自体は、Mechanize モジュールでサポートされていないことがわかっている JavaScript を起動するようです。ただし、このページの動作をテストするために、Chrome ブラウザーで JavaScript を無効にしましたが、ボタンをクリックしてサイトにログインすることはできました。したがって、ここではjavascriptは必須ではないと思います。
次のコードを使用していますが、入力した詳細 (ユーザー/パス) は問題ではないようです。何らかの理由で、常に「成功」シナリオに従い、「ログイン成功!」を受け取ります。
my $mech = WWW::Mechanize->new( cookie_jar => {}, autocheck => 1, onerror => \&Carp::croak,); # Login Form my $response = $mech->get($url); if (!$response->is_success) { die "Login page unreachable $url: ", $response->status_line, "\n"; } $mech->field('Email', $Email); $mech->field('Password', $Password); $response = $mech->click(); if ($response->is_success) { print "Login Successful!\n"; } else { die "Login failed: ", $response->status_line, "\n"; }
その結果、スクリプトの実行は成功しているように見えますが、既にログオンしていると仮定してサイトからデータを取得しようとすると、(スニファーで) 「登録」ページに継続的に転送されていることがわかります。 .
どんな助けでも大歓迎です!
前もって感謝します!