Капча турбобит

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by IgrikX, 3 Jun 2010.

  1. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    Пытаюсь написать скачивалку для turbobit. Выдираю капчу, но при вводе капчи, пишет мол не верно распознано, как решить проблему.?
    PHP:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Net;
    using System.Text.RegularExpressions;

    namespace 
    turbobit
    {
        public 
    partial class Form1 : Form
        
    {
    //-----------------------------------------------------------------------
            
    private string turbobit_get(string url, string user_agent, string reffer)
            {

                
    HttpWebRequest url_turbobit = (HttpWebRequest)WebRequest.Create(url);
                
    url_turbobit.CookieContainer = cookies;
                
    url_turbobit.Referer = reffer;
                
    url_turbobit.UserAgent = user_agent;
                
    HttpWebResponse res_turbobit = (HttpWebResponse)url_turbobit.GetResponse();
                
    cookies = url_turbobit.CookieContainer;
                
    Stream stream_turbobit = res_turbobit.GetResponseStream();
                
    StreamReader read_stream_turbobit = new StreamReader(stream_turbobit);
                
    string str_turbobit = read_stream_turbobit.ReadToEnd();
                return 
    str_turbobit;
            }

            private 
    string turbobit_post(string url, string user_agent, string reffer, string post)
            {

                
    HttpWebRequest url_turbobit = (HttpWebRequest)WebRequest.Create(url);
                
    url_turbobit.Referer = reffer;
                
    url_turbobit.CookieContainer = cookies;
                
    url_turbobit.UserAgent = user_agent;
                
    url_turbobit.AllowAutoRedirect = true;
                
    url_turbobit.Method = "POST";
                
    byte[] byte_post = System.Text.Encoding.ASCII.GetBytes(post);
                
    url_turbobit.ContentLength = byte_post.Length;
                
    Stream stream_turbobit = url_turbobit.GetRequestStream();
                
    stream_turbobit.Write(byte_post, 0, byte_post.Length);
                
    stream_turbobit.Close();
                
    HttpWebResponse res_turbobit = (HttpWebResponse)url_turbobit.GetResponse();
                
    cookies = url_turbobit.CookieContainer;
                
    richTextBox1.Text = res_turbobit.Cookies[0].ToString();
                
    Stream stream_turbobit_2 = res_turbobit.GetResponseStream();
                
    StreamReader read_stream_turbobit = new StreamReader(stream_turbobit_2);
                
    string str_turbobit = read_stream_turbobit.ReadToEnd();
                return 
    str_turbobit;
            }

            private 
    string url = "http://turbobit.net/jswesvvba30d.html";
            private 
    string user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3";
            private 
    string reffer = "";
            private 
    string captcha_response = "";// разгадывание капчи
            
    private string captcha_type = "";// тип капчи
            
    private string captcha_subtype = "";// допольнительный параметр
            
    CookieContainer cookies = new CookieContainer();

    //-------------------------------------------------------------------------
            
    public Form1()
            {
                
    InitializeComponent();
            }

            private 
    void Form1_Load(object sender, EventArgs e)
            {
            
            }

            private 
    void button1_Click(object sender, EventArgs e)
            {
                
    // строки нужно переинициализовать
                
    url = "http://turbobit.net/jswesvvba30d.html";
                
    user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3";
                
    reffer = "";
                
    captcha_response = "";// разгадывание капчи
                
    captcha_type = "";// тип капчи
                
    captcha_subtype = "";// допольнительный параметр
                //--------------------------------
                
    string str_html = turbobit_get(url,user_agent,reffer);
                
    reffer = url;// рефером становиться адрес на который мы перешли
                // выдираем сслку для дальнейшего перехода
                
    Match free_url = Regex.Match(str_html,"class=\"free\" href=\"(.+?)\"");
                
    // установливаем ссылку для дальнейшего перехода
                
    url = "http://turbobit.net" + free_url.Groups[1].Value;
                
    // отправляем get запрос
                
    str_html = turbobit_get(url, user_agent, reffer);
                
    reffer = url;// рефером становиться адрес на который мы перешли
                
    url = reffer + "#"; // устанавливаем урл для дальнейшего использования
                
    richTextBox1.Text = str_html;
                
    // выдираем капчу
                
    Match captha = Regex.Match(str_html, "alt=\"Captcha\" src=\"(.+?)\"");
                
    string url_captha = captha.Groups[1].Value;// url к капче
                //выдираем дополнительтные параметры
                
    Match captcha_type_s = Regex.Match(str_html, "value = '(.+?)' name = 'captcha_type'");
                
    captcha_type = captcha_type_s.Groups[1].Value;
                
    Match captcha_subtype_s = Regex.Match(str_html, "value = '(.+?)' name = 'captcha_subtype'");
                
    captcha_subtype = captcha_subtype_s.Groups[1].Value;
                
    //----------------------------------
                
    try
                {
                
    // выводи капчу в imageBox
                
    HttpWebRequest url_turbobit = (HttpWebRequest)WebRequest.Create(url_captha);
                
    url_turbobit.Referer = reffer;
                
    url_turbobit.CookieContainer = cookies;
                
    url_turbobit.UserAgent = user_agent;
                
    HttpWebResponse res_turbobit = (HttpWebResponse)url_turbobit.GetResponse();
                
    Stream stream_turbobit = res_turbobit.GetResponseStream();
                
    pictureBox1.Image = Image.FromStream(stream_turbobit);
                
    richTextBox2.Text = "Капча найдена!";
                }
                catch (
    Exception)
                {
                
    richTextBox2.Text = "Капча не найдена!";
                }

            }

            private 
    void button2_Click(object sender, EventArgs e)
            {
                
    // POSTDATA=captcha_response=NUPP&captcha_type=securimg&captcha_subtype=9
                
    captcha_response = textBox1.Text;
                
    richTextBox2.Text = captcha_type;
                
    richTextBox3.Text = captcha_subtype;
                
    richTextBox4.Text = reffer;
                
    richTextBox5.Text = reffer+"#";
                
    string post = "captcha_response="+captcha_response+"&captcha_type="+captcha_type+"&captcha_subtype="+captcha_subtype;
                
    richTextBox6.Text = post;
                
    string test = turbobit_post(url, user_agent, reffer, post);
            }

        }
    }