2012-02-29 2 views
0

Я создаю приложение для компании, которая заполнит форму в приложении Windows, и почтовый запрос будет отправлен на сервер для регистрации пользователя.curl не показывает captcha

Для того, чтобы отправить запрос POST я использовал локон

private void post_data(string url, string data) 
    { 
     Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL); 

     Easy e = new Easy(); 
     Easy.WriteFunction wf = MyWriteFunction; 

     e.SetOpt(CURLoption.CURLOPT_URL, url); 
     e.SetOpt(CURLoption.CURLOPT_POSTFIELDS, data); 
     e.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf); 
     e.Perform(); 
     e.Cleanup(); 
    } 

    private int MyWriteFunction(byte[] buf, int size, int nmemb, Object extraData) 
    { 
     StreamWriter sw = new StreamWriter(@"curl.txt"); 

     foreach (byte b in buf) 
     { 
      sw.Write(((char)b)); 
     } 
     sw.Flush(); 
     sw.Close(); 

     return buf.Length; 
    } 

И для того, чтобы извлечь путь изображения Captcha из исходного кода и позволяет пользователю вводить текст

private void Get_Captcha_Image(string url) 
    { 
     Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL); 

     Easy e = new Easy(); 
     Easy.WriteFunction wf = MyWriteFunction; 
     e.SetOpt(CURLoption.CURLOPT_URL, url); 
     e.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf); 
     e.Perform(); 
     e.Cleanup(); 

     get_ca_2(); 
    } 

    private void get_ca_2() 
    { 
     Regex r = new Regex(@"(?<=src=('|""))https?://.*?(?=\1)"); 

     foreach (string line in File.ReadAllLines("curl.txt")) 
     { 
      Match m = r.Match(line); 

      if (m.Success) 
      { 
       if (m.Value.Contains("http://www.google.com/recaptcha/api/image?c=")) 
       { 
        pictureBox1.ImageLocation = m.Value; 
       } 
      } 
     } 
    } 

Но что я что

<img width="300" height="57" src="http://www.google.com/recaptcha/api/image?c=03AHJ_VuvnenuZSRbfL_JTQLTYKFYzEFTkYrDgedu0SLyYvTDhsr2hHjQPwYlGJiP3dJRewkIhhdeILAd1_61_aFfU2dclbf8uovme-0gF3nm8Y7-LQVfaDQoI35bo3c35pOnF-xSY3Qfy_lh8TzhSWlMemEnkYnDpZw" alt="reCAPTCHA challenge image" style="display:block;"> 

Например, нет на извлеченном веб-сайте исходного кода usin г локон

Я устал WebBrowser и скрыть его, и я был в состоянии найти проверочное изображение и я был успешным на размещение данных, но мне нужно, чтобы понять это на скручивание

ответ

1

Я хотел бы исследовать ли изменения содержания веб-сайта на основе ваших заголовков. Очевидно, что заголовки от завитка будут сильно отличаться от заголовков, скажем, IE. Попробуйте использовать браузер, который позволяет вам подделывать другой пользовательский агент и т. Д., Посмотрите, не изменит ли он его. Это может быть так же просто, как использовать флаг -user-agent curl.

Смежные вопросы