Старый 02.07.2010, 20:06   #1
Ded MustD!e
Banned
 
Регистрация: 01.07.2010
Сообщений: 162
Question Вопросы по Perl

В этой теме задаем вопросы по языку Perl.
Ded MustD!e вне форума   Ответить с цитированием
Старый 31.07.2010, 20:46   #2
skM
 
Регистрация: 06.07.2010
Сообщений: 95
Репутация: 8
По умолчанию

Не могу авторизваться на ОД
В чем причина ?

PHP код:
use LWP::UserAgent;
use 
HTTP::Cookies;

sub browser {
             
$ua=LWP::UserAgent->new;
             
$ua->agent("Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a");
             
$ua->cookie_jar(HTTP::Cookies->new('file' => 'cookies.txt','autosave' => 1,));
             return 
$ua;
             }

$login='';
$passw='';
  
$ua=browser();
  
$res=$ua->get('http://odnoklassniki.ru')->as_string;
  (
$act)=$res=~/<div class="panelBox_body"><form action="(\S+)" method="post"><input value="" type="hidden" name="st.redirect">/;
  
$res=$ua->post($act,{st.redirect=>'',st.posted=>'set',st.email=>$login,st.password=>$passw,st.fJS=>'enabled',st.screenSize=>'1024+x+768',st.flashVer=>'10.1.53',button_go=>'%D0%92%D0%BE%D0%B9%D1%82%D0%B8'})->as_string
skM вне форума   Ответить с цитированием
Старый 31.07.2010, 20:53   #3
Hank
Banned
 
Регистрация: 28.07.2010
Сообщений: 8
Репутация: -15
По умолчанию

как реализовать, что бы бот заходил на все каналы ирц сервера ?
мб какие идеи ?
мб код похожий есть ?
мб через /list как нито парсить, хотя я пока не представляю как.
мб через еще какую залупу ?
Hank вне форума   Ответить с цитированием
Старый 31.07.2010, 21:18   #4
.Slip
 
Аватар для .Slip
 
Регистрация: 30.06.2010
Сообщений: 49
По умолчанию

Вывод в консоль на примере irc.ctacok.name:
Цитата:
:188.120.228.203 321 bototo Channel :Users Name
:188.120.228.203 322 bototo #help 3 :
:188.120.228.203 322 bototo #rdot 8 :\n
:188.120.228.203 322 bototo #allcheats 1 :
:188.120.228.203 322 bototo #flood 1 :
:188.120.228.203 322 bototo #antichat 1 :
:188.120.228.203 323 bototo :End of /LIST
В чём проблема спарсить?
.Slip вне форума   Ответить с цитированием
Старый 31.07.2010, 21:30   #5
Hank
Banned
 
Регистрация: 28.07.2010
Сообщений: 8
Репутация: -15
По умолчанию

спарсить не проблема, как сам заход спарсеных каналов реализовать, хз, в масив что ли запихать. я нимнога лоло
Hank вне форума   Ответить с цитированием
Старый 31.07.2010, 21:53   #6
.Slip
 
Аватар для .Slip
 
Регистрация: 30.06.2010
Сообщений: 49
По умолчанию

Зачем в массив? Результат выдаётся построчно.
Код:
while(<SOCK>) {
    ...
    send SOCK, "JOIN #".$1."\r\n", 0 if $_ =~ /bototo #(\w+)/;
    ...
}
bototo - ник бота
.Slip вне форума   Ответить с цитированием
Старый 31.07.2010, 22:11   #7
Dr.TRO
 
Аватар для Dr.TRO
 
Регистрация: 06.07.2010
Сообщений: 90
Репутация: 21
По умолчанию

Цитата:
Сообщение от skM Посмотреть сообщение
Код:
  ($act)=$res=~/<div class="panelBox_body"><form action="(\S+)" method="post"><input value="" type="hidden" name="st.redirect">/;
как минимум экранируй точки в регулярках) это же мета символы на худой конец quotemeta юзай для экранирования ненужных мета символов
так же имхо грамотнее искать все что [^"]
__________________
http://fc01.deviantart.net/fs48/f/20...eyecixramd.png
http://img156.imageshack.us/img156/2...userbartd7.png
Цитата:
root@rdot.org ~ # perl -MAcme::BadExample
Dr.TRO вне форума   Ответить с цитированием
Старый 01.08.2010, 00:44   #8
skM
 
Регистрация: 06.07.2010
Сообщений: 95
Репутация: 8
По умолчанию

парсит без ошибок, с этим все нормально.
здесь что-то другое
skM вне форума   Ответить с цитированием
Старый 01.08.2010, 02:24   #9
Fepsis
 
Аватар для Fepsis
 
Регистрация: 05.07.2010
Сообщений: 55
Репутация: 9
По умолчанию

skM,

Код:
sub browser { 
             $ua=LWP::UserAgent->new; 
             $ua->agent("Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a"); 
             $ua->cookie_jar(HTTP::Cookies->new('file' => 'cookies.txt','autosave' => 1,)); 
             return $ua; 
             } 

$login=''; 
$passw=''; 


  $ua=browser(); 
  $res=$ua->get('http://odnoklassniki.ru')->as_string; 
  ($act)=$res=~/<div class="panelBox_body"><form action="(\S+)" method="post"><input value="" type="hidden" name="st.redirect">/; 

  $act =~ s/&amp;/&/g;


  $res=$ua->post($act,

	['st.redirect'=>'',
	'st.posted'=>'set',
	'st.email'=>$login,
	'st.password'=>$passw,
	'st.fJS'=>'enabled',
	'st.screenSize'=>'1024+x+768',
	'st.flashVer'=>'10.1.53',
	'button_go'=>'Войти'],

	Referer => 'http://odnoklassniki.ru/'

  )->as_string;

Дальше парсишь Location и идёшь по нему...
Fepsis вне форума   Ответить с цитированием
Старый 01.08.2010, 03:43   #10
skM
 
Регистрация: 06.07.2010
Сообщений: 95
Репутация: 8
По умолчанию

Fepsis, спасибо, работает
skM вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot