2

WWW:Mechanizeを使用してサイトにログインしようとしています。

コード

use WWW::Mechanize;
my $mech = WWW::Mechanize->new();

$mech->get("https://www.amazon.com/gp/css/homepage.html/");
$mech->submit_form(
form_name => 'yaSignIn',
fields => {
email => 'email',
qpassword=> 'pass'
}
);


print $mech->content();

ただし、サイトにログインしていません。私は何が間違っているのですか。ウェブサイトがリダイレクトされ、Cookieを有効にして続行してくださいと表示されます。それ、どうやったら出来るの 。

ここに画像の説明を入力してください

4

1 に答える 1

5

このブロックを get の前に置いてみてください。

$mech->cookie_jar(
        HTTP::Cookies->new(
            file           => "cookies.txt",
            autosave       => 1,
            ignore_discard => 1,
    )
);

SuperEdit2 : 私はこれを自分で試してみましたが、うまくいったようです。試してみてください。 (フォーム番号を 3 に変更し、エージェント エイリアスを追加しました)

use strict;
use warnings;
use WWW::Mechanize;

# Create a new instance of Mechanize
my $bot = WWW::Mechanize->new();
$bot->agent_alias( 'Linux Mozilla' );
# Create a cookie jar for the login credentials
$bot->cookie_jar(
        HTTP::Cookies->new(
            file           => "cookies.txt",
            autosave       => 1,
            ignore_discard => 1,
    )
);
# Connect to the login page
my $response = $bot->get( 'https://www.amazon.com/gp/css/homepage.html/' );
# Get the login form. You might need to change the number.
$bot->form_number(3);
# Enter the login credentials.
$bot->field( email => 'email' );
$bot->field( password => 'pass' );
$response = $bot->click();

print $response->decoded_content;
于 2012-05-17T05:50:08.227 に答える