none
CAPTURA DE DATOS - PAGINA WEB RRS feed

  • Pregunta

  • Buen dia,

    de antemano agradezco la ayuda. tengo el siguiente problema...

    desarrollo una aplicación donde capturo unos datos de una pagina web utilizando vb.net y el objeto de la interfaz SHDocVw.WebBrowser, lo que hace es que si encuentra determinada pagina la guarda como body.innerHTML en una variable string. hasta hace unos días funcionaba perfectamente. la pagina donde capturo los datos cambio la estructura de la misma (Links, Nombres de campos, etiquetas) y ya no me deja tomar los valores. cuando hago el recorrido del proceso por debug en vb.net, me muestra la variable cargada  con el innerHTML pero como si no hubiesen datos diligencidos, asi este los viendo en la pagina.

    también intente guardar la pagina (completa, HTML) desde el IE para validar que conserve los datos ingresados en la pagina y no los guarda, es decir, como si no hubiese escrito nada. ya no se que hacer para poder guardar esos campos correctamente. alguna sugerencia siempre bienvenida. gracias.

    Estas son las herramientas con las que hago el desarrollo:

    Visual Studio 2013

    SO: 8.1 pro

    IE: 11

     Public Sub WindowOfPoliedro()
            Dim ShellOnWindows As New ShellWindowsClass
            Dim ObjectOfPoliedro As SHDocVw.WebBrowser
    
            Try
                '--runs all instances of internet explorer--'
                For Each ObjectOfPoliedro In ShellOnWindows
                    Dim NameOfBrowser As String = ObjectOfPoliedro.Name.ToLower.ToString
    
                    '--check if name of browser contains internet explorer--'
                    If NameOfBrowser.ToString.Contains("internet explorer") Or NameOfBrowser.ToString.Contains("internet") Or NameOfBrowser.ToString.Contains("explorer") Then
                        Dim LocationOfBrowser As String = ObjectOfPoliedro.LocationURL.ToLower.ToString
                        Dim TitleOfBrowser As String = ObjectOfPoliedro.LocationName.ToLower.ToString
                        Dim DocumentOfPoliedro As mshtml.HTMLDocument = TryCast(ObjectOfPoliedro.Document, mshtml.HTMLDocument)
                        Dim StrinOfPage As String = DocumentOfPoliedro.body.innerHTML
    
                        '--links of pospago pages--'
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/enterprise/activation/capturadatos.aspx" Then Call PospagosOnUnique(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/enterprise/activation/demograficos.aspx" Then Call PospagosOnDemographic(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/enterprise/activation/result.aspx" Then Call PospagosOnResult(StrinOfPage)
    
                        '--links of prepago pages--'
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/activaciones/http/consulta%20credito/creditocapturagsmjbap.asp" Then Call PrepagosOnUnique(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/activaciones/http/captura%20activacion%20gsm/activaprepagogsmjb.asp" Then Call PrepagosOnDemographic(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/activaciones/http/captura%20activacion%20gsm/tomarparametrospregsmjb.asp" Then Call PrepagosOnResult(StrinOfPage)
    
                        '--links of reposicion pages--'
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/replacement/user/findreplacement.aspx" Then Call ReposicionOnUnique(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/replacement/user/validation.aspx" Then Call ReposicionOnConsult(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/replacement/user/replacementform1.aspx" Then Call ReposicionOnDemographic(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/replacement/user/templateform.aspx" Then Call ReposicionOnFormat(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/replacement/user/queryreplacement.aspx" Then Call ReposicionOnResult(StrinOfPage)
    
                        '--links of datacredits pages--'
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/enterprise/credito/creditform.aspx" Then Call DatacreditsOnUnique(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/enterprise/credito/creditquery.aspx" Then Call DatacreditsOnResult(StrinOfPage)
                        If LocationOfBrowser = "https://poliedromodernoprd.azurewebsites.net/customersearch" Then Call DatacreditsOnUnique(StrinOfPage)
                        If LocationOfBrowser = "https://poliedromodernoprd.azurewebsites.net/uniqueprofile" Then Call DatacreditsOnResult(StrinOfPage)
    
                        '--links of wellcomeback pages--'
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/activaciones/http/consulta%20legalizacion%20gsm/conlegalizacion.asp" Then Call WellcomeOnUnique(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/activaciones/http/consulta%20legalizacion%20gsm/reslegalizacion.asp" Then Call WellcomeOnDemographic(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/activaciones/http/consulta%20legalizacion%20gsm/guardar_legalizacion.asp" Then Call WellcomeOnResult(StrinOfPage)
    
                        '--links to preactivation of wellcomes--'
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/enterprise/prepago/capturadatos.aspx" Then Call PresimOnUnique(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/enterprise/prepago/demograficos.aspx" Then Call PresimOnDemographic(StrinOfPage)
                        If LocationOfBrowser = "https://poliedrodist.comcel.com.co/enterprise/prepago/result.aspx" Then Call PresimOnResult(StrinOfPage)
                    End If
                Next
    
    
            Catch ex As Exception
            Finally
            End Try
        End Sub






    Danny

    • Cambiado Enrique M. Montejo miércoles, 22 de noviembre de 2017 7:17 Pregunta relacionada con controles de Windows Forms.
    miércoles, 15 de noviembre de 2017 21:27

Respuestas

  • Hola  Danny Mosquera

    Con base a tu consulta, te invito a probar el siguiente código que te dejaré a continuación, en el cual puede serte de mucha ayuda

    //Codigo que sirve para caoturar los datos de la web

    void Page_Load(object sender, EventArgs e)

    {
        System.Text.StringBuilder displayValues =
            new System.Text.StringBuilder();
        System.Collections.Specialized.NameValueCollection
            postedValues = Request.Form;
        String nextKey;
        for(int i = 0; i < postedValues.AllKeys.Length - 1; i++)
        {
            nextKey = postedValues.AllKeys[i];
            if(nextKey.Substring(0, 2) != "__")
            {
                displayValues.Append("<br>");
                displayValues.Append(nextKey);
                displayValues.Append(" = ");
                displayValues.Append(postedValues[i]);
            }
        }
       Label1.Text = displayValues.ToString();
    }

    Quedamos al pendiente de cualquier actualización de tu parte

    Saludos Cordiales.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
    _____
     
    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
     
    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.
     
    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    • Propuesto como respuesta Pablo Rubio martes, 21 de noviembre de 2017 16:27
    • Marcado como respuesta Danny Mosquera viernes, 8 de diciembre de 2017 16:45
    viernes, 17 de noviembre de 2017 22:24