none
obtener datos de otra pagina RRS feed

  • Pregunta

  • Estimados

    como puedo lograr obtener datos de otra pagina web(adjunto imagen de una pagina web que muestran datos ) lo que quiero realizar es que mi aplicacion en asp.net 2010 logre extraer los datos de esa pagina(web imagen) para mostrarlos en mi propio formulario

    http://e-consultaruc.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias

    por defecto les dejo un ruc de una empresa : 2010007892

    Espero me aya dejado entender, gracias.

    sunat



    QUIERO MATAR ESTA DUDA ... ANTES QUE EL MUNDO DEJE DE EXISTIR..


    • Editado ApreSabi jueves, 2 de marzo de 2017 3:47 me falto la imagen
    jueves, 2 de marzo de 2017 3:46

Respuestas

  • Mal asunto. Probablemente sea porque le falta algún dato en la cabecera http (por ejemplo una cookie), o algún código de la URL no es correcto.

    Veo que has mencionado el captcha. La forma en que suele funcionar es que el sistema genera un captcha al azar, lo embebe en la página y le pide al usuario que teclee el código. Cuando pulsas Enviar, la página de destino se empareja en el servidor con la primera página gracias a una cookie que va en las cabeceras http. Con esa cookie, sabe qué captcha le envió a la página y lo compara con el valor recibido en la segunda llamada (y si no coincide, rechaza la petición).

    Así que si quieres poder hacer la petición de forma automatizada, necesitas programar ese circuito: hacer la primera petición, tomar la cookie y el valor del captcha, y enviar la segunda petición con la cookie y el valor. Lamentablemente, en lo anterior existe un punto débil: tomar el valor del captcha no es nada sencillo, están diseñados para que sean fáciles de reconocer por una persona, pero muy difíciles de reconocer por un sistema informático. 

    jueves, 2 de marzo de 2017 22:33

Todas las respuestas

  • Básicamente lo que haces es enviar una petición http al sitio remoto, usando alguna de las varias clases de .net que te permiten enviar este tipo de peticiones, por ejemplo, System.Net.WebClient.

    https://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.110).aspx

    Con esta clase, llamas a su método DownloadString, que te devolverá dentro de un String todo el HTML de la página a la que llamaste. Una vez que tienes ese texto, usas las funciones de manipulación de cadena para separar de su interior loas porciones que te interesen. Puedes usar Regex si es una búsqueda complicada, o puede ser que te baste con IndexOf y Substring si los fragmentos deseados son fáciles de identificar dentro del html.

    jueves, 2 de marzo de 2017 7:53
  • hola

    a lo comentado por Alberto en el uso de WebClient para obtener el html de la pagina, luego podrias usar

     HtmlAgilityPack

    para parsear el contenido y acceder a los datos del html

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 2 de marzo de 2017 10:49
  • La imagen anterior que mostre(pagina resultado), se muestra luego de hacer un paso anterior (pagina de busqueda),

    Se visualiza la misma url tanto para la busqueda como para el resultado,

    al utilizar el metodo:

    Dim myWebClient As New WebClient()
            Dim datos As String = myWebClient.DownloadString("http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS03Alias")

    me trae el html de la pagina de busqueda, pero no el del resultado. creo yo por los Iframe

    adjunto imagen : Gracias. espero me puedan ayudar, necesito extraer el resultado de la busqueda

    RUC de prueba 10076453476

    http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS03Alias

     

     

    QUIERO MATAR ESTA DUDA ... ANTES QUE EL MUNDO DEJE DE EXISTIR..


    • Editado ApreSabi jueves, 2 de marzo de 2017 17:00
    jueves, 2 de marzo de 2017 16:58
  • hola

    >>me trae el html de la pagina de busqueda, pero no el del resultado. creo yo por los Iframe

    si hay una navegacion de una pagina a otro ya que debes aplicar una busqueda el WebClient no te va a ser util

    deberias evaluar usar el control WebBrowser

    con este podrias cargar la primer pagina de busqueda, aunque veo dificilel ingreso del codigo que se debe ingresar desde la imagen

    despues de navegar podrias acceder al Document del html de la pagina

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 2 de marzo de 2017 17:07
  • Hola leandro:

    WebBrowser es un control a agregar en asp.net 2010?, no lo encuentro.


    QUIERO MATAR ESTA DUDA ... ANTES QUE EL MUNDO DEJE DE EXISTIR..

    jueves, 2 de marzo de 2017 17:39
  • al utilizar el metodo:[...] myWebClient.DownloadString [...] me trae el html de la pagina de busqueda, pero no el del resultado.

    Utiliza las herramientas F12 del navegador para realizar una captura de tráfico de red en el momento de ejecutar la búsqueda. Examina las navegaciones que ha hecho, y entre ellas encontrarás la petición concreta que hay que enviar al servidor para descargar los resultados de la búsqueda.
    jueves, 2 de marzo de 2017 19:54
  • Bueno hasta ahora, estos son los paramentros(nroruc, codigo), si envio  

    http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias?accion=consPorRuc&nroRuc=20556581534&codigo=NLLZ&tipdoc=1

    claro el codigo NLLZ es el captcha y se actuliza, si voy a la pagina copeo y pego en la url el nuevo codigo captcha, los datos se muestran:

    pero no puedo extraerlo aun

      Dim myWebClient As New WebClient()
            Dim DATOS As String = myWebClient.DownloadString("http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias?accion=consPorRuc&nroRuc=20128322575&codigo=SGQJ&tipdoc=1")

    me trae el html pero de la pagina de error cuando hay un problema..

     ... gracias, por los comentarios.... 


    QUIERO MATAR ESTA DUDA ... ANTES QUE EL MUNDO DEJE DE EXISTIR..

    jueves, 2 de marzo de 2017 21:54
  • Mal asunto. Probablemente sea porque le falta algún dato en la cabecera http (por ejemplo una cookie), o algún código de la URL no es correcto.

    Veo que has mencionado el captcha. La forma en que suele funcionar es que el sistema genera un captcha al azar, lo embebe en la página y le pide al usuario que teclee el código. Cuando pulsas Enviar, la página de destino se empareja en el servidor con la primera página gracias a una cookie que va en las cabeceras http. Con esa cookie, sabe qué captcha le envió a la página y lo compara con el valor recibido en la segunda llamada (y si no coincide, rechaza la petición).

    Así que si quieres poder hacer la petición de forma automatizada, necesitas programar ese circuito: hacer la primera petición, tomar la cookie y el valor del captcha, y enviar la segunda petición con la cookie y el valor. Lamentablemente, en lo anterior existe un punto débil: tomar el valor del captcha no es nada sencillo, están diseñados para que sean fáciles de reconocer por una persona, pero muy difíciles de reconocer por un sistema informático. 

    jueves, 2 de marzo de 2017 22:33