Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   PERL login проблема (https://forum.antichat.xyz/showthread.php?t=142694)

mr.4k 21.09.2009 01:03

PERL login проблема
 
просьба поправить кривость в коде [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";
}



Время: 12:27