[Perl] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. [none]

    [none] Banned

    Joined:
    22 Nov 2009
    Messages:
    83
    Likes Received:
    26
    Reputations:
    -6
    Помогите найти скрипт каторый работает через антигейт (без всяких модулей специальных для этого)
    ну или так обьясните
    my $resp = $ua->post("http://антигейт/in.php",
    ["key" => "ключ",
    "file" => "капча",])->as_string;

    далее как капчу получить в перменную.я пробывал типа так
    $lol=get("антигейт/in.php");
    print"$lol";
    выводит ошибку какую-то..так вообще можно?
     
    #1821 [none], 21 Mar 2011
    Last edited: 21 Mar 2011
  2. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    [none], тут же всё подробно описано: http://antigate.com/panel.php?action=api

    первым запросом отправляешь ключ и капчу на http://antigate.com/in.php, если всё удачно, то получаешь ответ в виде "OK|id_капчи"

    Потом уже получаешь статус/результат распознавания так:
    http://antigate.com/res.php?key=ключ&action=get&id=id_капчи_из_первого_запроса

    Можешь поковырять исходник от Kaimi, http://kaimi.ru/2009/05/anticaptcha-perl/
    у него правда на сокетах, если хочешь на LWP писать, посмотри на тему HTTP::Request::Common, я обычно через него делаю multipart/form-data запросы...
     
  3. [none]

    [none] Banned

    Joined:
    22 Nov 2009
    Messages:
    83
    Likes Received:
    26
    Reputations:
    -6
    я так и делаю, не понял как мне результат распознавания в переменную засунуть..
     
    #1823 [none], 22 Mar 2011
    Last edited: 22 Mar 2011
  4. dpe_x

    dpe_x Elder - Старейшина

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    тебе же написали все..
    грузишь капчу , получаешь айди,
    потом запрос
    http://antigate.com/res.php?key=ключ&action=get&id=id_капчи_из_первого_запроса
    и если капча готова то
    вытягиваешь регуляркой
     
  5. [none]

    [none] Banned

    Joined:
    22 Nov 2009
    Messages:
    83
    Likes Received:
    26
    Reputations:
    -6
    для perl 5.12 есть что нибудь бесплатное или крякнутое, для реализации скриптов в exe?
     
  6. Sc0rpi0n

    Sc0rpi0n Banned

    Joined:
    23 Feb 2010
    Messages:
    75
    Likes Received:
    22
    Reputations:
    16
    Здравсвуйте. Я новичёк в Perl. И не могу разобраться.
    Итак. Есть массив с html кодом @data
    Мне надо сделать условие, что если в html коде, который хранится в массиве @data отсутсвует текст "Warning"
    то выполняется некотрое условие. Вот как я делаю.
    PHP:
          @data GetRequest($url); # моя функция получения html страницы
          
    if( !@data =~ m/Warning/ )
          {
              print 
    'Текст Warning отсутсвует!';
          }
    Но ничё не работает. Помогите плиз. с меня +
     
  7. dpe_x

    dpe_x Elder - Старейшина

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    Попробуй так
    Code:
    foreach (@mass)
    {
    	if ($_=~ /WARNING/)
    	{
    		Условие
    	}
    }
    
     
  8. red_joker

    red_joker New Member

    Joined:
    4 Nov 2010
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    PHP:
          @data GetRequest($url); # моя функция получения html страницы
          
    if( !(grep $_ =~ /Warning/ } @data) )
          {
              print 
    'Текст Warning отсутсвует!';
          }
    There's more than one way to do it :)
    С т. зрения выделения памяти - возвращать из процедуры лучше не массив, тем более немаленький массив из строк с хтмл, а ссылку на него:
    Code:
         
    sub GetRequest($) {
      my $url = shift;
      ...
      return \@data
    }
     @data = @{GetRequest($url)}; html страницы     
    
     
  9. dimio

    dimio New Member

    Joined:
    12 Apr 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    CavaPackager видели?
     
  10. dimio

    dimio New Member

    Joined:
    12 Apr 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    ответ сервера (если речь про использование LWP) надо через метод content получать (или decoded_content).
    $src = $resp->decoded_content;
     
  11. dpe_x

    dpe_x Elder - Старейшина

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    элементарно

    Code:
    use LWP::UserAgent;
    
    open(FILE , "<file.txt"); #открываем файл с линками
    chomp(my @links = <FILE>);
    close FILE;
    
    my $ua = LWP::UserAgent->new;
    $ua->timeout( 20 );
    
    while (my $link = shift @links)
    {
    	$page = $ua->get($link);
    	if($page ->is_success)
    	{
    		print "good: $link\n";
    		open (FILE2 , ">>good.txt");  # записываем удачные
                   print FILE $link."\n";
    		close FILE2;
    	}
    	else
    	{
    		print "bad: $link\n";
    	}
    }
    
    <>;
    
     
    #1831 dpe_x, 28 Apr 2011
    Last edited: 28 Apr 2011
  12. Donet

    Donet New Member

    Joined:
    11 Apr 2011
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    Установил ActivePerl 5.8.9 Build 826. Никак немогу привязать ево к Apache HTTP Server 2.2 в Apache HTTP Server 2.2 уже установлен PhP 5.2.9.9 и MySQL Server 6.0 это всьо работает но никак немугу в Apache HTTP Server 2.2 утановить ActivePerl 5.8.9 Build 826.
    Пробовал в httpd.conf прописать
    но mod_perl.so нигде нет
    Пробовал в httpd.conf прописать
    Неоткрывает вопше Perl файлов
    В Perl всегда пришу
    Система Win 32
    Подскажыте плиз что делать??????
     
    #1832 Donet, 4 May 2011
    Last edited: 4 May 2011
  13. Strilo4ka

    Strilo4ka

    Joined:
    5 Apr 2009
    Messages:
    709
    Likes Received:
    729
    Reputations:
    948
    для mysql нужен модуль DBD-mysql
    Code:
    ppm install http://theoryx5.uwinnipeg.ca/ppms/DBD-mysql.ppd 
    в httpd.conf
    Code:
    ScriptlnterpreterSource registry 
    и перегружаем сервер.

    Перед установкой актив перл, поставить галочку
    Code:
    Add Perl to the PATH environment variable
    если не ставилось, то руками впихнуть в переменную окружения.

    ps
    Это строка игнорируеться #!C:\Perl\bin\perl.exe, так как
    ScriptlnterpreterSource registry прописано в настройках сервера.

    Сервер ищет интерпретатор в реестре win, видимо у вас там ничего нет.

    Если нет, то

    Code:
    мой компютер->свойства->дополнительно->переменные среды->Path изменить->;C:\Perl\bin;
     
    #1833 Strilo4ka, 4 May 2011
    Last edited: 4 May 2011
  14. Donet

    Donet New Member

    Joined:
    11 Apr 2011
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    В
    У меня прописано
    В httpd.conf прописано
    Не установлял
    Но в Perl Апачи не видет
     
    #1834 Donet, 4 May 2011
    Last edited: 4 May 2011
  15. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    FAIL
    Code:
    LoadModule cgi_module modules/mod_cgi.so
    
    Никсы ставьте
     
  16. Donet

    Donet New Member

    Joined:
    11 Apr 2011
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    Модуль
    в httpd.conf бил разлочен давно но сним или без ниво Перл не пашет.
    Надежда на Денвер но там Msql царапаэтса (имеэт много ларов)
    А если пере мутить етот текст под Перл
    Бутто
    Может порулить
     
    #1836 Donet, 5 May 2011
    Last edited: 5 May 2011
  17. smershik

    smershik New Member

    Joined:
    27 Apr 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    мне нужно записать данные в файл, но перед записью очистить весь мусор. в одной из статей нашла
    # Добавление в конец (создается, если не существует)
    open FF, "» file.txt"; эта запись работает. нормально добавляет все и создает файл если его нет

    sysopen FF, "file.txt", OJJRONLY I 0_CREAT I O_APPEND;


    # Чтение/запись (файл очищается)
    open FF, "+> file.txt";
    а эта не понимаю как работает.она конечно очищает мне всё что было до этого в файле, но пишет всего 1 запись , а мне надо много.
    подскажите как создать файл если его нет, записать туда много данных и очистить данные при следующем выполнении скрипта
     
  18. TikTik

    TikTik Member

    Joined:
    20 Feb 2009
    Messages:
    241
    Likes Received:
    12
    Reputations:
    2
    Кто работал с Perl2exe как его зарегистрировать ???
    Обьясните по шагам пожалуйста пожалуйста нашел ключ но незнаю как зарегистрировать

    Ключ
    test:[email protected]:20110506,12091
     
  19. yellsoft

    yellsoft Member

    Joined:
    21 Nov 2007
    Messages:
    19
    Likes Received:
    5
    Reputations:
    1
    сохрани ключ в файл с именем perl2exe.key
    и положи его рядом с perl2exe.exe
     
  20. TikTik

    TikTik Member

    Joined:
    20 Feb 2009
    Messages:
    241
    Likes Received:
    12
    Reputations:
    2
    Cпасибо большое попробуй как долго блин я ждал ответа не как не мог разобратся :(

    А как юзать опции может подскажите тоже не как догнать немогу
    Code:
    Usage:
    
    perl2exe myscript.pl
    or
    perl2exe [options] myscript.pl
    
    This will convert a script named myscript.pl to myscript.exe.
    
    options:
    
    -v	Verbose output
    -register	This option allow you to enter registration information for Perl2Exe. You will be prompted for a registration key.
    -small	Generates a smaller executable which uses a shared runtime DLL. The generated executable will be smaller by about 600KB. The executable will require a shared DLL, p2xXXX.dll to run. This DLL will be copied to the current directory.
    Applies to the Pro version on Windows only.
    
    -tiny	Create an even smaller executable by placing additional code into DLL's. Perl2Exe will create DLL files in the current directory containing code from loadable modules which use pll, dll, or so files. This option is not available in the Lite versions of Perl2Exe.
    -gui	
    Create a no-console executable.  This can be used for Tk and Win32::GUI applications.   I/O to STDOUT and STDIN will not be visible.  If your application does not work do not use the -gui option while testing as it will hide possible error messages.
    
    Applies to Windows version only.
    
    -icon=filename	
    Add a user supplied icon to the executable. The icon must contain a Standard(32x32) and a Small(16x16) bitmap and must be 1078 bytes long.
    
    How to create the required icon using Dev Studio: 
    Start DevStudio and open or create a new icon file. Draw the Standard (32x32) icon image. Press the Insert key. Select Small (16x16). Draw the small icon image. Save the icon file.
    
    Icons will not display on Win95 systems unless IE is also installed.
    
    Applies to Windows  version only
    
    -o=filename	Specify the output filename.
    -platform=SunOS
    -platform=Linux
    etc	Specify the target platform for the executable.  The default is based on the host machine.  On a Linux host the default is linux, on a SunOS (Solaris) host the default is SunOS.   For a full list of available platforms type the command 'perl2exe'.
     
    
    -noopt	Disable some optimization.
    -opt	Increase optimization.  Line numbers in error messages will not match your code if this option is used.
    -I=dir1:dir2	This will cause Perl2Exe to search in additional directories for modules
     
    #1840 TikTik, 9 Jun 2011
    Last edited: 9 Jun 2011
Thread Status:
Not open for further replies.