Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> perl LWP форма ввода 
:(
    Опции темы
Loki
Дата 18.2.2017, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Подскажите по LWP в perl'е.
Вот такая форма:
Код

    <input type="text" class="big_text" name="email" id="email" value="" placeholder="Телефон или e-mail" />
    <input type="password" class="big_text" name="pass" id="pass" value="" placeholder="Пароль" />

Не хотят логинится на сайт.
Код

use strict;
use LWP::UserAgent;
use HTTP::Cookies;

    my $cookie_jar = HTTP::Cookies->new( 
     file => 'lwp_cookies.txt',
     autosave => 1,
     ignore_discard => 1,
   );

    my $ua = LWP::UserAgent->new(
        ssl_opts => { verify_hostname => 1 }, 
        cookie_jar => $cookie_jar,
        );

    my $response = $ua->post('https://site.com/login.php',
                    email => '[email protected]',
                    pass => 'pass'
                   );

 if ($response->is_success) {
     print $response->decoded_content;
 }
 else {
     die $response->status_line;
 }


1;

Правильно ли я указал дериктивы email и pass в $ua->post?
Или возможно не так?
Нужно залогиниться на сайте, по https.
PM MAIL   Вверх
arto
Дата 19.2.2017, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



da
PM MAIL ICQ   Вверх
Loki
Дата 20.2.2017, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Но не работает, что если сайт vkontakt, но он просто выдает странице входа снова.
Ни капч ничего нет, просто та же форма и все.
PM MAIL   Вверх
alezzz
Дата 20.2.2017, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



Подставте юзерагент реального браузера, в браузере в инструменте разработчика посмотрите что передается в заголовке, ищите какие есть скрытые инпуты кроме email и pass.
В vk не авторизовался ни разу, говорю по опыту настройки авторизации в интернет-магазинах.
PM MAIL   Вверх
Loki
Дата 20.2.2017, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Ну вот так вот должно быть, но форма логина только прилетает заполненая в первом случае.
Код

my $response = $ua->post('https://vk.com/login',
                [
                    email => '[email protected]',
                    pass => 'pass'
                   ],
                );
                    
my $response = $ua->post('https://login.vk.com/?act=login',
                 [
                    email => '[email protected]',
                    pass => 'pass'
                   ],
                );

Во втором, приходит 302.
Форма в первом случае прилтает вот такая:
Код

  <form method="post" name="login" id="login_form" action="https://login.vk.com/?act=login">
    <input type="hidden" name="act" id="act" value="login">
    <input type="hidden" name="to" id="to" value=""/>
    <input type="hidden" name="expire" id="expire_input" value="" />
    <input type="hidden" name="_origin" value="https://vk.com" />
    <input type="hidden" name="ip_h" value="ce75412fff540a9f6d" />
    <input type="hidden" name="lg_h" value="8db7b2b04ef30a4eee" />
    <input type="text" class="big_text" name="email" id="email" value="[email protected]" placeholder="╨в╨╡╨╗╨╡╤Д╨╛╨╜ ╨╕╨╗╨╕ e-mail" />
    <input type="password" class="big_text" name="pass" id="pass" value="" placeholder="╨Я╨░╤А╨╛╨╗╤М" />
    <div class="checkbox" id="expire" onclick="checkbox(this);ge('expire_input').value=isChecked(this)?1:'';">╨з╤Г╨╢╨╛╨╣ ╨║╨╛╨╝╨┐╤М╤О╤В╨╡╤А</div>
    <div class="login_buttons_wrap">
      <button id="login_button" class="flat_button button_big_text login_button">╨Т╨╛╨╣╤В╨╕</button><button id="login_reg_button" class="flat_button button_big_text login_reg_button" onclick="nav.go('/join'); return cancelEvent(event);">╨а╨╡╨│╨╕╤Б╤В╤А╨░╤Ж╨╕╤П</button>
    </div>
  </form>

PM MAIL   Вверх
alezzz
Дата 21.2.2017, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



Посмотрите в браузере в инструменте разработчика как происходит авторизация. Если все правильно сделать, то после https://login.vk.com/?act=login получите редирект 302 на https://vk.com/login.php, где получите каптчу. 
PM MAIL   Вверх
Loki
Дата 21.2.2017, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Капчи нет, только форма логина.
После логина выходит на первую страницу личной странички вконтакта.
PM MAIL   Вверх
Loki
Дата 25.2.2017, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Подскажите еще по скрипту, что не так, на странице которую я получаю после логина отображается
Цитата

window.loginSubmitError = function() {
  showFastBox('Предупреждениe', 'Не удается пройти авторизацию по защищенному соединению. Чаще всего это происходит, когда на Вашем компьютере установлены неправильные текущие дата и время. Пожалуйста, проверьте настройки даты и времени в системе и перезапустите браузер.');
}

Это сообщение видно всегда, при правильном и неправильном пароле.
PM MAIL   Вверх
Loki
Дата 27.2.2017, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Попробовал по другому, все равно не пускает.
Код

use strict;
use LWP::UserAgent;
use HTTP::Cookies;
use Encode qw(decode encode);
#use HTTP::Request::Common qw(GET POST);
#use MIME::Base64 qw(encode_base64);

    my $cookie_jar = HTTP::Cookies->new( 
     file => 'lwp_cookies.txt',
     autosave => 1,
     ignore_discard => 1,
   );

    my $ua = LWP::UserAgent->new(
        ssl_opts => { verify_hostname => 1 }, 
        cookie_jar => $cookie_jar,
        );
                    #$ua->timeout(10);
                    #$ua->agent('Opera/9.62 (Windows NT 6.0; U; ru) Presto/2.1.1');
     #my $response = $ua->post('https://vk.com/login', { email => '[email protected]', pass => 'pass' } )->as_string; 
     my $response = $ua->post('https://vk.com/login', #https://login.vk.com/?act=login
                    [
                    email => '[email protected]',
                    pass => 'pass'
                   ],
                    );

 if ($response->is_success) {
     #print $response->decoded_content;
     print encode("cp866", $response->decoded_content);
 }
 else {
     die $response->status_line;
 }


1;


PM MAIL   Вверх
Loki
Дата 27.2.2017, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Вот еще Data Dumper'ом задампил, может подскажиет чего не так делаю?
Код

                '_rc' => '200',
                 '_headers' => bless( {
                                        'content-type' => 'text/html; charset=windows-1251',
                                        'date' => 'Mon, 27 Feb 2017 07:52:30 GMT',
                                        'x-ua-compatible' => 'IE=edge',
                                        'x-frame-options' => 'deny',
                                        'title' => '┬їюф | ┬╩юэЄръЄх',
                                        '::std_case' => {
                                                          'client-response-num' => 'Client-Response-Num',
                                                          'refresh' => 'Refresh',
                                                          'client-ssl-cipher' => 'Client-SSL-Cipher',
                                                          'client-peer' => 'Client-Peer',
                                                          'client-date' => 'Client-Date',
                                                          'x-frame-options' => 'X-Frame-Options',
                                                          'strict-transport-security' => 'Strict-Transport-Security',
                                                          'set-cookie' => 'Set-Cookie',
                                                          'title' => 'Title',
                                                          'x-ua-compatible' => 'X-UA-Compatible',
                                                          'set-cookie2' => 'Set-Cookie2',
                                                          'x-powered-by' => 'X-Powered-By',
                                                          'client-ssl-cert-issuer' => 'Client-SSL-Cert-Issuer',
                                                          'client-ssl-socket-class' => 'Client-SSL-Socket-Class',
                                                          'x-meta-description' => 'X-Meta-Description',
                                                          'link' => 'Link',
                                                          'client-ssl-cert-subject' => 'Client-SSL-Cert-Subject'
                                                        },
                                        'cache-control' => 'no-store',
                                        'set-cookie' => 'remixtst=DELETED; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=.vk.com',
                                        'strict-transport-security' => 'max-age=0',
                                        'client-peer' => '95.213.11.180:443',
                                        'server' => 'Apache',
                                        'client-ssl-cipher' => 'ECDHE-RSA-AES256-GCM-SHA384',
                                        'refresh' => '0; URL=/badbrowser.php',
                                        'client-response-num' => 1,
                                        'pragma' => 'no-cache',
                                        'client-date' => 'Mon, 27 Feb 2017 07:52:31 GMT',
                                        'link' => [
                                                    '</images/icons/favicons/fav_logo.ico?5>; rel="shortcut icon"',
                                                    '</images/safari_60.png?1>; rel="apple-touch-icon"',
                                                    '</images/safari_76.png?1>; rel="apple-touch-icon"; sizes="76x76"',
                                                    '</images/safari_120.png?1>; rel="apple-touch-icon"; sizes="120x120"',
                                                    '</images/safari_152.png?1>; rel="apple-touch-icon"; sizes="152x152"',
                                                    '</css/al/fonts_cnt.css?2696088870>; rel="stylesheet"; type="text/css"',
                                                    '</css/al/common.css?3139011733>; rel="stylesheet"; type="text/css"',
                                                    '</css/al/login.css?4083904144>; rel="stylesheet"; type="text/css"',
                                                    '</css/al/ui_common.css?1997027190>; rel="stylesheet"; type="text/css"'
                                                  ],
                                        'client-ssl-cert-subject' => '/OU=Domain Control Validated/CN=*.vk.com',
                                        'x-meta-description' => '',
                                        'client-ssl-socket-class' => 'IO::Socket::SSL',
                                        'content-length' => '16964',
                                        'connection' => 'close',
                                        'client-ssl-cert-issuer' => '/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2',
                                        'x-powered-by' => 'PHP/3.11091'
                                      }, 'HTTP::Headers' ),
                 '_request' => bless( {
                                        '_uri_canonical' => bless( do{\(my $o = 'https://vk.com/login')}, 'URI::https' ),
                                        '_uri' => $VAR1->{'_request'}{'_uri_canonical'},
                                        '_headers' => bless( {
                                                               'cookie2' => '$Version="1"',
                                                               'content-length' => 33,
                                                               'content-type' => 'application/x-www-form-urlencoded',
                                                               'user-agent' => 'libwww-perl/6.15',
                                                               '::std_case' => {
                                                                                 'cookie2' => 'Cookie2',
                                                                                 'if-ssl-cert-subject' => 'If-SSL-Cert-Subject',
                                                                                 'cookie' => 'Cookie'
                                                                               },
                                                               'cookie' => 'remixlang=0; remixlhk=3a386548142f42bbd9'
                                                             }, 'HTTP::Headers' ),
                                        '_method' => 'POST',
                                        '_content' => '[email protected]&pass=pass'
                                      }, 'HTTP::Request' ),
                 '_protocol' => 'HTTP/1.1',
                 '_msg' => 'OK'
               }, 'HTTP::Response' );

PM MAIL   Вверх
alezzz
Дата 27.2.2017, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



https://vk.com/login - это форма авторизации, ей не надо отсылать логин и пароль, эта страница вам нормально ответила кодом 200.
логин, пароль и и все остальное надо отправлять на https://login.vk.com/?act=login
смотрите в коде
Код

<form method="POST" name="login" id="quick_login_form" action="https://login.vk.com/?act=login">
    <input type="hidden" name="act" value="login" />
    <input type="hidden" name="role" value="al_frame" />
    <input type="hidden" name="expire" id="quick_expire_input" value="" />
    <input type="hidden" name="captcha_sid" id="quick_captcha_sid" value="" />
    <input type="hidden" name="captcha_key" id="quick_captcha_key" value="" />
    <input type="hidden" name="_origin" value="https://vk.com" />
    <input type="hidden" name="ip_h" value="b77b3d7743e94bb653" />
    <input type="hidden" name="lg_h" value="216ee17c554fdec55b" />
    <div class="label">Телефон или e-mail</div>
    <div class="labeled"><input type="text" name="email" class="dark" id="quick_email" /></div>
    <div class="label">Пароль</div>
    <div class="labeled"><input type="password" name="pass" class="dark" id="quick_pass" onkeyup="toggle('quick_expire', !!this.value);toggle('quick_forgot', !this.value)" /></div>
    <input type="submit" class="submit" />
  </form>

PM MAIL   Вверх
Loki
Дата 28.2.2017, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Да, но тогда я получаю 302:
Код

$VAR1 = bless( {
                 '_content' => '',
                 '_headers' => bless( {
                                        'content-length' => '0',
                                        'client-ssl-cipher' => 'ECDHE-RSA-AES256-GCM-SHA384',
                                        'client-ssl-cert-subject' => '/OU=Domain Control Validated/CN=*.vk.com',
                                        'client-date' => 'Tue, 28 Feb 2017 05:50:04 GMT',
                                        'content-type' => 'text/html; charset=windows-1251',
                                        'date' => 'Tue, 28 Feb 2017 05:50:03 GMT',
                                        'pragma' => 'no-cache',
                                        'connection' => 'close',
                                        'client-ssl-socket-class' => 'IO::Socket::SSL',
                                        '::std_case' => {
                                                          'client-ssl-socket-class' => 'Client-SSL-Socket-Class',
                                                          'content-base' => 'Content-Base',
                                                          'client-ssl-cipher' => 'Client-SSL-Cipher',
                                                          'base' => 'Base',
                                                          'client-ssl-cert-subject' => 'Client-SSL-Cert-Subject',
                                                          'client-date' => 'Client-Date',
                                                          'set-cookie' => 'Set-Cookie',
                                                          'client-ssl-cert-issuer' => 'Client-SSL-Cert-Issuer',
                                                          'p3p' => 'P3P',
                                                          'client-response-num' => 'Client-Response-Num',
                                                          'set-cookie2' => 'Set-Cookie2',
                                                          'client-peer' => 'Client-Peer',
                                                          'strict-transport-security' => 'Strict-Transport-Security',
                                                          'x-powered-by' => 'X-Powered-By'
                                                        },
                                        'client-ssl-cert-issuer' => '/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2',
                                        'p3p' => 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"',
                                        'location' => 'http://vk.com/login?&to=&s=0&m=1&email=',
                                        'cache-control' => 'no-store',
                                        'client-response-num' => 1,
                                        'server' => 'Apache',
                                        'client-peer' => '95.213.11.180:443',
                                        'strict-transport-security' => 'max-age=15768000',
                                        'x-powered-by' => 'PHP/3.11130'
                                      }, 'HTTP::Headers' ),
                 '_protocol' => 'HTTP/1.1',
                 '_rc' => '302',
                 '_msg' => 'Found',
                 '_request' => bless( {
                                        '_uri_canonical' => bless( do{\(my $o = 'https://login.vk.com/?act=login')}, 'URI::https' ),
                                        '_content' => '[email protected]&pass=pass',
                                        '_method' => 'POST',
                                        '_headers' => bless( {
                                                               'content-length' => 32,
                                                               '::std_case' => {
                                                                                 'if-ssl-cert-subject' => 'If-SSL-Cert-Subject',
                                                                                 'cookie2' => 'Cookie2',
                                                                                 'cookie' => 'Cookie'
                                                                               },
                                                               'cookie' => 'remixlhk=3a386548142f42bbd9; remixlang=0',
                                                               'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0',
                                                               'cookie2' => '$Version="1"',
                                                               'content-type' => 'application/x-www-form-urlencoded'
                                                             }, 'HTTP::Headers' ),
                                        '_uri' => $VAR1->{'_request'}{'_uri_canonical'}
                                      }, 'HTTP::Request' )
               }, 'HTTP::Response' );

PM MAIL   Вверх
alezzz
Дата 28.2.2017, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



Правильно, дальше отправляйте на http://vk.com/login?&to=&s=0&m=1&email= и где-то там появится данные каптчи.
В браузере пробовали смотреть процесс авторизации в инструменте разработчика?
PM MAIL   Вверх
Loki
Дата 1.3.2017, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Да там нет капчи, я просто логинюсь в браузере без капчи и никакой капчи нет, просто логин и пароль.
PM MAIL   Вверх
Loki
Дата 7.3.2017, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



Что-то не выходит, капчи нету, только форма логина.
Откуда вы там капчу нашли?

Это сообщение отредактировал(а) Loki - 7.3.2017, 12:16
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1629 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.