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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как заставить LWP brouser проходить аутефикацию ? Пытаюсь сделать credential, no good :( 
:(
    Опции темы
stan777
Дата 19.3.2007, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо, я забыл про существование post(), если он не будет перекодировать < > в %ХХ тогда заранее спасибо, возможно сэкономил время.  

Это сообщение отредактировал(а) stan777 - 19.3.2007, 00:35
PM MAIL   Вверх
KSURi
Дата 19.3.2007, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если будут траблы с перекодированием, попробуй поэксперементировать с аргументом Content_Type у post.

Код

 my $response=$ua->post(shift,
                         [user=>shift,
                          pass=>shift]
                         Content_Type=>"blabla");



--------------------
Died at Life.pl line 21
PM Jabber   Вверх
stan777
Дата 19.3.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ок, спасибо. 
PM MAIL   Вверх
stan777
Дата 21.3.2007, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(KSURi @ 19.3.2007,  13:52)
Если будут траблы с перекодированием, попробуй поэксперементировать с аргументом Content_Type у post.

Код

 my $response=$ua->post(shift,
                         [user=>shift,
                          pass=>shift]
                         Content_Type=>"blabla");

А ты не знаешь как к такому запросу пришить куки ?
PM MAIL   Вверх
nitr
Дата 21.3.2007, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



stan777, уже показывал smile
перед этими строка укажи
Код

$ua->default_header('Cookie', "cookie_name=cookie_value"); 

или
Код

$ua->default_headers->push_header('Cookie', "cookie_name=cookie_value"); 


а так: perldoc LWP::UserAgent

Это сообщение отредактировал(а) nitr - 21.3.2007, 22:05


--------------------
PM   Вверх
stan777
Дата 22.3.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



да спасибо ! это мне и было нужно smile.

Это сообщение отредактировал(а) stan777 - 28.3.2007, 09:38
PM MAIL   Вверх
gcc
Дата 1.5.2008, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

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



скажите полиз зачем вы делаете вот это? 

Код

my $hdrs=HTTP::Headers->new('Accept'=>'text/plain','UserAgent'=>'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');
my $reqG=HTTP::Request->new('GET',$domen,$hdrs);

$cookie_jar->add_cookie_header($reqG);

$response=$ua->request($reqG);



уже понял! не надо длятого чтобы работало, чтобы заголовок передать 

Это сообщение отредактировал(а) gcc - 1.5.2008, 19:38
PM WWW ICQ Skype GTalk Jabber   Вверх
SuperProga
Дата 1.7.2008, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уважаемые знатоки ПЕРЛа, любители и начинающие (как я)!
У кого есть возможнасть и желание помоготе плизз!

Проблема, возможно простая, но решить своими силами я не в состоянии :(

Мне нужна программа, которая должна пройти аутентификацию на сервере "ric.consultant.ru", 
после этого перейти на страничку с информацией за определенный день, 
например http://ric.consultant.ru/interactive/?date=2008-07-1, при чем на http://ric.consultant.ru/interactive/ хранитса информация за текущий день. На страничке есть таблица с текстом ( что можно скачать ), гиперссылки на уже "живые" файлы, и т.д.

Пока застопорился на аутентификации, и получении этой самой странички за текущую дату!
Вот что есть:
------------------- B E G I N -----------------------
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
use LWP::UserAgent;
use LWP::Debug qw(+);

my $ua=LWP::UserAgent->new();
   $ua->timeout(5);
   $ua->agent("Mozilla/4.0");
   $ua->proxy('http', 'http://127.0.0.1:8080'); # установлен проксимитрон, который проходится без проблем

$ua->credentials(
    'ric.consultant.ru:8080',
    'RIC_Information_server',
    'мой login' => 'мой password'
  );

my $url = "http://ric.consultant.ru/";

my $document=$ua->request(HTTP::Request->new(GET => $url));

print "Content-type: text/html\n\n";
my $html = $document->content;

my @str=split /<tr>/, $html;
   foreach my $str_ (@str)  { print $#str, " ::: " , $str_, "\n";   }
--------------------- E N D ----------------------

вот что пишет проксимитрон в логе:

------------------- B E G I N -----------------------
New Message Log Window....

+++GET 5+++
GET / HTTP/1.1
TE: deflate,gzip;q=0.3
Host: ric.consultant.ru
User-Agent: Mozilla/4.0
Connection: keep-alive

+++RESP 5+++
HTTP/1.1 401 Authorization Required
Date: Tue, 01 Jul 2008 13:26:51 GMT
Server: Apache
WWW-Authenticate: Basic realm="RIC_Information_server"
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
Match 5: Kill pop-up windows
Match 5: Suppress all JavaScript errors
Match 5: Stop browser window resizing
<end> 5: Restore pop-ups after a page loads
+++CLOSE 5+++
--------------------- E N D ----------------------

и вот что сообщает консоль:
------------------- B E G I N -----------------------


LWP::UserAgent::new: ()
LWP::UserAgent::proxy: http http://127.0.0.1:8080
LWP::UserAgent::request: ()
LWP::UserAgent::send_request: GET http://ric.consultant.ru/
LWP::UserAgent::_need_proxy: Proxied to http://127.0.0.1:8080
LWP::Protocol::http::request: ()
LWP::Protocol::collect: read 246 bytes
LWP::Protocol::collect: read 38 bytes
LWP::Protocol::collect: read 37 bytes
LWP::UserAgent::request: Simple response: Unauthorized
Content-type: text/html

0 :::
<!--//--><script src="http://local.ptron/WindowOpen.js"></script>

<!--//--><script> function NoError(){return(true);} onerror=NoError; </script>

<!--//--><script> function moveTo(){return true;}function resizeTo(){return true;}</script>
<H1><B> Authorization failed </B></H1>
<!--//--><script>PrxRST();</script>
--------------------- E N D ----------------------

PM MAIL   Вверх
KSURi
Дата 1.7.2008, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 smile 
Используйте тег [code]


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
SuperProga
Дата 2.7.2008, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(KSURi @ 1.7.2008,  20:36)
smile 
Используйте тег [code]

Уважаемый опытный пользователь, я прошу ПОМОЩИ, а не спрашиваю где находится КРЕМЛЬ smile, к сожаления мне не достаточно махнуть рукой в сторону ГДЕ искать ответ :(, т.е. я там скорее всего был, но мне это не помогло!!! Здесь ТЯЖЕЛЫЙ случай smile - нужно реальное "терапевтическое" вмешательство!  smile  
Мой код вы видете - если все вам понятно, что где я накосячил, и вы знаете как нужно написать правильно, что бы все заработало то напишите правильный РАБОЧИЙ вариант. Как я уже писал выше мне нужно пройти аутентификацию ( или авторизацию,  хз как правильно ) на сервере http://ric.consultant.ru/, и получить содержимое странички с http://ric.consultant.ru/interactive/.
PM MAIL   Вверх
shamber
Дата 2.7.2008, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Уважаемый SuperProga вас просят проявлять уважение к остальным участникам. Вы разве не видите надпись КОД?
PM MAIL Jabber   Вверх
KSURi
Дата 2.7.2008, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



SuperProga, в методе credentials, в первом параметре, попробуйте заменить порт 8080 на 80.
Если не поможет - попробуйте сделать запрос без прокси.


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
ginnie
Дата 2.7.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

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



SuperProga, еще, как вариант, можно использовать авторизацию из примера к LWP::UserAgent.

Это сообщение отредактировал(а) ginnie - 2.7.2008, 11:04


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
SuperProga
Дата 2.7.2008, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(shamber @ 2.7.2008,  09:21)
Уважаемый SuperProga вас просят проявлять уважение к остальным участникам. Вы разве не видите надпись КОД?

Уважаемый shamber, к сожалению я не силен в пользовании возможностями ФОРУМА, но общий смысл вашей мессаги кажется до меня дошел. Попробую воспользоваться!

KSURi огромное спасибо! Волшебное урезание 8080 до 80 в credentials действительно помогло!!!
Вот как это выглядит в рабочем варианте
Код

#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
use LWP::UserAgent;
use LWP::Debug qw(+);

my $ua=LWP::UserAgent->new();
   $ua->timeout(5);
   $ua->agent("Mozilla/4.0");
   $ua->proxy('http', 'http://127.0.0.1:8080');

$ua->credentials(
    'ric.consultant.ru:80',
    'RIC_Information_server',
    'мой login' => 'мой password'
  );

my $url = "http://ric.consultant.ru/";

my $document=$ua->request(HTTP::Request->new(GET => $url));

my $html = $document->content;
   
open (HTML, ">LOG\.html");

my @str=split /<tr>/, $html;

   foreach my $str_ (@str)  { 
   print HTML $#str, " ::: " , $str_, "\n";
   }

close HTMP;


в файле "LOG.html" сохраняется стартовая страничка с http://ric.consultant.ru/, правда гиперссылки указывает не верные (ссылается видимо на текущий каталог как корневой: <A HREF=/interactive/> )

Стартовую страничку я получил. Осталось дело за малым как теперь получить страничку с  http://ric.consultant.ru/interactive/?
PM MAIL   Вверх
shamber
Дата 2.7.2008, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



 smile 
Уважаемый SuperProga, вы очень быстро учитесь, и это хорошо. Только в следующий раз, нажимайте пожалуйста не просто код, а код->perl smile
Вам все будут очень признательны. smile
 smile 


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


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

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


 




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


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

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