Каптча

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by sidapas23, 1 Apr 2011.

  1. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    Привет!
    Кто ни будь напишите пожалуйста функцию для парсинга капчи с этой страницы ато никак не разберусь.Просьба ссылки на всякие статьи не выставлять.Заранее спасибо.
     
  2. eclipse

    eclipse Member

    Joined:
    19 Dec 2010
    Messages:
    155
    Likes Received:
    74
    Reputations:
    85
    Берешь функцию IndexOf или аналоги, и режешь отпарсенный текст, получая тем саммым адрес к изображению-капче
     
  3. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    можно и delete заюзать
     
  4. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    Подробнее пожалуйста как все сделать а то я не понял.
     
  5. eclipse

    eclipse Member

    Joined:
    19 Dec 2010
    Messages:
    155
    Likes Received:
    74
    Reputations:
    85
    Быдлокод для лентяев))
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    namespace captchaparser
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private static string fDWN(string url, string referer = "http://google.com")
            {
                try
                {
                    var WR = (HttpWebRequest)WebRequest.Create(url);
                    WR.AllowAutoRedirect = true;
                    WR.Accept = "text/html";
                    WR.Method = "GET";
                    WR.Referer = referer;
                    WR.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 3.0.04506.648;)";
                    using (var httpWebResponse = (HttpWebResponse)WR.GetResponse())
                    {
                        using (var stream = httpWebResponse.GetResponseStream())
                        {
                            using (var reader = new StreamReader(stream, Encoding.GetEncoding(httpWebResponse.CharacterSet)))
                            {
                                return reader.ReadToEnd();
                            }
                        }
                    }
                }
                catch
                {
                    return null;
                }
            }
            private void fDWN2(string fr, string st)
            {
                        try
                {
                    System.Net.WebClient client = new WebClient();
                    client.DownloadFile(fr,st);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                };
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                string fContents = fDWN("https://edit.yahoo.com/registration?.src=fpctx&.intl=ru&.done=http%3A%2F%2Fru.yahoo.com%2F");
                int startInt = fContents.IndexOf("cURL: \"") + 7;
                fContents = fContents.Substring(startInt);
                int stopInt = fContents.IndexOf(".jpg\"") + 4;
                fContents = fContents.Substring(0, stopInt);
                fDWN2(fContents, "file.jpg");
            }
        }
    }
    
     
  6. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    eclipse а на делфи нету?
     
  7. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    HTTPAnalyzer берёшь подключаешь к своему браузеру, заходишь на страницу, и я уверен, что ты получишь ссылку на капчку после своего Get запроса там будет еще ID, а этот ID надо уже вытаскивать из страницы методами Copy, Pos, Length, Delete - пока сам не научишься, будет тяжело дальше, что-то делать :)
     
  8. Yokohama-man

    Yokohama-man Member

    Joined:
    23 Mar 2011
    Messages:
    17
    Likes Received:
    6
    Reputations:
    0
    Автор, также для понятия как "работает" страничка с капчей (как ведёт себя капча при обновлении), можешь попробывать использовать Opera Dragonfly (У меня нормально работает в Opera 11.01 сборка 1190 Win32 Presto 2.7.62.) .

    Далее работай с полученным "кодом". Тебе нужно получать URL адрес капчи. Фактически нужно "просеять" код через парсер Парсер - не просто красивое слово из программирования, это "Анализатор текста", в нашем случае кода.
    Не всё так просто, как кажется.