Perl WWW :: Механизация учетных данных - PullRequest
1 голос
/ 15 июля 2011

Я хочу искать контент с сайта, используя WWW :: Mechanize, но для того, чтобы сначала это сделать, мне нужно войти в систему с моим зарегистрированным именем пользователя и паролем, чего я не могу сделать с этим кодом. Что нужно изменить, чтобы я мог успешно отправить форму. Спасибо.

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

my $username = "username";
my $password = "password";
my $cookie_jar;

my $url = "http://www.albumartexchange.com/forums/ucp.php?mode=login";

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

$mech->credentials($username, $password);
$mech->get($url);

$mech->success() or die "Failed";

$mech->submit_form(
   form_number => 4,
);
die "Submit failed" unless $mech->success;

$mech->save_content('log.txt');

UPDATE:

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

my $cookie_jar;
my $mech = WWW::Mechanize->new( cookie_jar => $cookie_jar );
$mech->get( 'http://www.albumartexchange.com/forums/ucp.php?mode=login' );

$mech->submit_form(
    form_number => 4,
    fields      => {
        'username'
            => 'some_username',
        'password'
            => 'some_password',
    }
);
$mech->save_content('log.txt');

Ответы [ 2 ]

0 голосов
/ 15 июля 2011

Вам не нужно credentials здесь. Просто используйте:

$mech->submit_form(
   form_number => 4,
   fields => {
        username => $user,
        password => $pass,
   },
);

Конечно, не забудьте изменить username и password на фактические имена полей для вашей целевой страницы.

0 голосов
/ 15 июля 2011

Эта страница не использует HTTP-аутентификацию, для чего credentials.Просто используйте мех, чтобы заполнить поля формы username и password и отправить форму входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...