RDot

RDot (https://rdot.org/forum/index.php)
-   Web development (https://rdot.org/forum/forumdisplay.php?f=39)
-   -   Вопросы по Perl (https://rdot.org/forum/showthread.php?t=10)

Ded MustD!e 02.07.2010 20:06

Вопросы по Perl
 
В этой теме задаем вопросы по языку Perl.

skM 31.07.2010 20:46

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

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


Hank 31.07.2010 20:53

как реализовать, что бы бот заходил на все каналы ирц сервера ?
мб какие идеи ?
мб код похожий есть ?
мб через /list как нито парсить, хотя я пока не представляю как.
мб через еще какую залупу ?

.Slip 31.07.2010 21:18

Вывод в консоль на примере 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
В чём проблема спарсить?

Hank 31.07.2010 21:30

спарсить не проблема, как сам заход спарсеных каналов реализовать, хз, в масив что ли запихать. я нимнога лоло

.Slip 31.07.2010 21:53

Зачем в массив? Результат выдаётся построчно.
Код:

while(<SOCK>) {
    ...
    send SOCK, "JOIN #".$1."\r\n", 0 if $_ =~ /bototo #(\w+)/;
    ...
}

bototo - ник бота

Dr.TRO 31.07.2010 22:11

Цитата:

Сообщение от skM (Сообщение 4164)
Код:

  ($act)=$res=~/<div class="panelBox_body"><form action="(\S+)" method="post"><input value="" type="hidden" name="st.redirect">/;

как минимум экранируй точки в регулярках) это же мета символы ;) на худой конец quotemeta юзай для экранирования ненужных мета символов :)
так же имхо грамотнее искать все что [^"] :)

skM 01.08.2010 00:44

парсит без ошибок, с этим все нормально.
здесь что-то другое

Fepsis 01.08.2010 02:24

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 и идёшь по нему...

skM 01.08.2010 03:43

Fepsis, спасибо, работает :)


Часовой пояс GMT +3, время: 07:21.

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