Вырвать капчу.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Anifuck, 30 Jun 2011.

  1. Anifuck

    Anifuck Member

    Joined:
    12 Nov 2010
    Messages:
    78
    Likes Received:
    7
    Reputations:
    0
    Добрый день ачат.
    Помогите... проблема с выдиранием капчи!
    Капча имеет подобный адрес: http://cosmowars.ru/captcha.php?0.8716419422948771
    число после php? всегда разное. в исходном коде адресс капчи указан так document.getElementById("captcha_key").src='captcha.php?'+Math.random();
    Со странички это число не спарсишь =(
    Вобщем незнаю что делать((( помогите пожалуйста!
     
  2. chexec

    chexec Member

    Joined:
    19 Nov 2010
    Messages:
    67
    Likes Received:
    11
    Reputations:
    3
    его не нужно парсить, это чтобы картинка не кешировалась.
     
  3. Anifuck

    Anifuck Member

    Joined:
    12 Nov 2010
    Messages:
    78
    Likes Received:
    7
    Reputations:
    0
    И как же всё таки скачать капчу?
     
  4. dpe_x

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

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    http://cosmowars.ru/captcha.php
     
  5. Anifuck

    Anifuck Member

    Joined:
    12 Nov 2010
    Messages:
    78
    Likes Received:
    7
    Reputations:
    0
    Хмм получилось)) а вчера пустую капчу выдавал.. ночь была сонный напутал что то наверное:)
    Спасибо)
     
  6. Vladislav

    Vladislav New Member

    Joined:
    21 Jun 2011
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    А не поможет ли кто-нибудь выдрать капчу вот отсюда ? А то я всё никак... Тщетные попытки описаны здесь , но там что-то глухо...
     
  7. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    почему все так хотят выдрать капчу? она что такая красивая и неприступная?
     
  8. ShkiperLol

    ShkiperLol Banned

    Joined:
    17 Apr 2010
    Messages:
    182
    Likes Received:
    1
    Reputations:
    0
    http://www.beeline.ru/mamimg.aspx?width=120&height=30
     
  9. Vladislav

    Vladislav New Member

    Joined:
    21 Jun 2011
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    404, в лучшем случае.

    Может я, конечно, сильно туплю (ну бля, сессия вчера закончилась, мозг немного не туда), но ссылка мне не помогла... :(
     
  10. ReL@X

    ReL@X New Member

    Joined:
    1 Jul 2011
    Messages:
    8
    Likes Received:
    1
    Reputations:
    2
    Добавь в заголовки:
    Code:
    IdHTTP1->Request->CustomHeaders->Add( 'Referer: http://www.beeline.ru/sms/index.wbp' );
    
    Если я например закомментирую его - придет HTTP/1.1 404 Not Found
     
    #10 ReL@X, 4 Jul 2011
    Last edited: 4 Jul 2011
  11. Vladislav

    Vladislav New Member

    Joined:
    21 Jun 2011
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Спасибо огромное! Именно то, что было нужно. И никакого геморроя с куками, код минимизировался до шести строк:
    Code:
    IdHTTP1->Request->CustomHeaders->Add( "Referer: http://www.beeline.ru/sms/index.wbp" );  	
    TMemoryStream *Captcha = new TMemoryStream;  	
    IdHTTP1->Get("http://www.beeline.ru/mamimg.aspx?width=120&height=30", Captcha);  	
    Captcha->SaveToFile("mamimg.gif");     	
    Image->Picture->LoadFromFile("mamimg.gif");  	
    DeleteFile ("mamimg.gif");
    Встала другая проблема: капча в TMemoryStream получается как рисунок в формате png, а на деле он в gif'е. Если загружать в Image сразу из потока:
    Code:
    Image->Picture->Graphic->LoadFromStream (Captcha);
    он выдаёт Access violation. Проблему я решил загрузкой в файл в правильном формате и вычитыванием оттуда (с последующим удалением, конечно же :)), но сдаётся мне, это несколько "через жопу". Может тут кто подскажет более разумное решение?