none
Cómo puedo hacer un web scraping poniendo la imagen captcha en mi app web para realizar la consulta? RRS feed

  • Pregunta

  • He estado intentando hacer lo siguiente:

    Hacer web scraping a una pagina que tiene captcha. 

    Poner la imagen con el código captha en mi sitio web para que sea introducido por el usuario y realizar la consulta.

    Pero me he encontrado con lo siguiente, la pagina genera el siguiente toquen:

    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJMTY3ODU1NDM3D2QWAgIBD2QWAgIBD2QWAgIED2QWAgIBD2QWAgIBD2QWAgIDDw8WBh4JRm9yZUNvbG9yDB4EVGV4dAU0SW50cm9kdXpjYSBsb3MgbsO6bWVyb3MgcXVlIHNlIG11ZXN0cmFuIGVuIGxhIGltYWdlbh4EXyFTQgIEZGRkI2vSAHfBwff4bQeYBeNrp2LgasjW5sAD/qaJaVX0FpI=">

    <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="CA0B0334">

    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAAUwHk+inUhBKZDyswsk5NNZgR+Ryzr40mCfb2xFWNvaXeZZujVI1Q63igKvL1NytQuECrD8jc5xpRI7GCI9w78rcjH6FuL/XcvxzPKyRvH3SBFX/SsuYstDGgj/PHztePFe/30iEMMQ1c1DxkjUszAx">

    Llevo horas tratando de hacer esto pero lo estoy viendo imposible. Para suministrar los datos estoy haciendo lo siguiente:

      string strURL;
                string strPostData = "";
                string strResult;
                HttpWebResponse webrespond;
                HttpWebRequest webresquest;
                StreamReader sr;
                StreamWriter sw;

                //set url to post
                strURL = "http://www.page/Default.aspx";

                //post some data        
                strPostData = "txtCodigo=001123458&CaptchaImage1$CodeNumberTextBox=9563";

                webresquest = (HttpWebRequest)WebRequest.Create(strURL);
                webresquest.Method = "POST";
                webresquest.Referer = strURL;
                webresquest.ContentType = "application/x-www-form-urlencoded";
                webresquest.ContentLength = strPostData.Length;

                //post data
                sw = new StreamWriter(webresquest.GetRequestStream());
                sw.Write(strPostData);
                sw.Close();

                //read the returned data
                webrespond = (HttpWebResponse)webresquest.GetResponse();
                sr = new StreamReader(webrespond.GetResponseStream());
                strResult = sr.ReadToEnd();          
                sr.Close();
                return strResult;

    Por favor, cualquier ayuda es bienvenida. Gracias de antemano. 


    Better late than never...

    sábado, 21 de noviembre de 2015 14:23

Todas las respuestas

  • hola

    >>Pero me he encontrado con lo siguiente, la pagina genera el siguiente toquen:

    pero el _VIEWSTATEno es ningun token es el viewstate de asp.net

    es la forma que asp.net imeplementa para conservar datos entre postback de eventos

    >>Llevo horas tratando de hacer esto pero lo estoy viendo imposible

    no entiendo que quieres implementar, estas tratando tomar la imagen captcha de un sitio web ?

    entiendo que para eso deberias trabjar el html de la pagina

    igualmente no creo que puedas interepretar lo escrito en esa imagen captcha porque la idea es justamente esa que no peuda ser reconocido de forma automatica, sino que lo ingrese una persona

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 21 de noviembre de 2015 19:10
  • Gracias por responder Leandro. Disculpa si resulto confusa la explicación.

    Lo que ando buscando es, sabiendo que no puedo interpretar la imagen del captcha leer el html de la pagina y ponerlo en una parte de mi aplicación web, lo cual pueda ser leído por el usuario y que este ponga el código del captcha en un textbox lo cual permitirá consultar dicha pagina y obtener el dato deseado. 

    Pude hacer esto usando el entorno descktop usando el control webbrowser, pero de la misma manera no lo puedo hacer en ASP.NET

    Necesito saber si es posible hacer esto y si es así como lo trabajaría. Cualquier ayuda por favor Leandro no dudes.


    Better late than never...

    sábado, 21 de noviembre de 2015 19:41