PDA

Просмотр полной версии : PERL login проблема


mr.4k
21.09.2009, 01:03
просьба поправить кривость в коде [PERL].

цель кода: залогиниться на порнхабе. логин и пас верны.
код ошибок не выдает. вроде пост происходит, но $r->content возвращает пустое место. в чем может быть проблема?
спасибо.

use strict;
use LWP::UserAgent;

my $user="Atisa";
my $ua = LWP::UserAgent->new;
my $r = $ua->get('http://www.pornhub.com');

$r = $ua->post('http://www.pornhub.com/login', [
'username' => $user,
'password' => "sooper",
'remember_me' => 1
], 'Referer' => 'http://www.pornhub.com/login');

if($r->content =~ /Sign Out/) {
print $user." logged in\n";
} else {
print $user." login failed\n";
print "content: ".$r->content;

}

eLWAux
21.09.2009, 02:18
наверное в хедере ответа от сервера надо смотреть.
->as_string
99% что там будет "Set-Cookie" и "Location"

krypt3r
21.09.2009, 08:41
#!/usr/bin/perl

use strict;
use LWP::UserAgent;

my $user = "Atisa";
my $ua = LWP::UserAgent->new ('agent' => 'Mozilla/4.0 (compatible; Windows 5.1)');
$ua->cookie_jar ({});
my $r = $ua->post ('http://www.pornhub.com/login', 'Referer' => 'http://www.pornhub.com/login',
Content => [
'username' => $user,
'password' => "sooper",
'remember_me' => 1
]);
if ($r->status_line eq '302 Found') {
print $user." logged in\n";
} else {
print $user." login failed\n";
print "content: ".$r->content;
}

mr.4k
21.09.2009, 12:43
работает отлично!
спасибо!

mr.4k
22.09.2009, 18:38
хмм...все же есть один нюанс.
нужен контент той страницы, куда попадает юзер после логина.
в посл. варианте $r->content не отдает контент.

просьба помочь по возможности.

d_x
22.09.2009, 18:49
Попробуй добавь в начале

push @{$ua->requests_redirectable}, "POST";

mr.4k
23.09.2009, 00:48
хорошая идея.
но не работает (

Kaimi
23.09.2009, 01:00
Поменяй условие
if ($r->status_line eq '302 Found')

и будет работать

mr.4k
23.09.2009, 17:08
2 Kaimi: уже было. работает вроде по факту логина. но контент спарсить не могу. возвращает пустую страницу.
отдельный респект тебе за блог! занимательный ресурс! пиши ещё!

Kaimi
23.09.2009, 17:16
#!/usr/bin/perl

use strict;
use LWP::UserAgent;

my $user = "Atisa";
my $ua = LWP::UserAgent->new(agent => 'Mozilla/4.0 (compatible; Windows 5.1)');
$ua->cookie_jar ({});
push @{$ua->requests_redirectable}, "POST";

my $r = $ua->post ('http://www.pornhub.com/login', 'Referer' => 'http://www.pornhub.com/login',
Content => [
'username' => $user,
'password' => "sooper",
'remember_me' => 1
])->content;

if ($r =~ /<div class="success">/) {
print $user." logged in\n".$r;
} else {
print $user." login failed\n";
}

mr.4k
23.09.2009, 17:38
все работает отлично!
контент есть.
спасибо!