** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Otros Productos Microsoft
  Mensajes nuevos Mensajes nuevos RSS - Obtención de datos de página web
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Obtención de datos de página web

 Responder Responder
Autor
Mensaje
annuroic Ver desplegable
Nuevo
Nuevo


Unido: 31/Marzo/2020
Localización: Huelva
Estado: Sin conexión
Puntos: 3
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita annuroic Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Obtención de datos de página web
    Enviado: 31/Marzo/2020 a las 11:53
Estimados miembros del foro:
Mi nombre es Antonio Núñez, es la primera vez que entro a este foro, aunque os llevo siguiendo una larga temporada.

Estoy programando una base de datos en access 365. La base de datos tiene que tomar datos de una página web, que está estructurada con bloques <div>. El dato que me interesa está debajo de 5 niveles <div>, para poder capturarlo, estoy tratando de usar Microsoft Internet Controls , por medio de 

IE.Document.getElementByClassID("maincontent").getElementsByName("results")(1).getElementsByName("resultitem").getElementsByName("name")

debo estar haciendo algo rematadamente mal, ya que siempre me da el error 438 en tiempo de ejecución.

¿Alguién ha capturado datos de web mediante este módulo?
¿Conocéis otra manera de hacerlo?

Muchas gracias por la segura ayuda.
saludos.
Cuídense.

Antonio
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3657
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lbauluz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 01/Abril/2020 a las 01:08
Hola annuroic, bienvenido al foro.

Maneras hay varias, pero creo que lo mejor sería ver tu código y a partir de ahí sugerir posibles cambios, en lugar de partir de cero, que entre otras cosas, es más rápido.

Por cierto, sería también de ayuda si pones la web a la que te estás conectando para obtener los datos.

Un saludo.

Luis.
El Búho es un pajarraco
Arriba
annuroic Ver desplegable
Nuevo
Nuevo


Unido: 31/Marzo/2020
Localización: Huelva
Estado: Sin conexión
Puntos: 3
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita annuroic Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 01/Abril/2020 a las 08:13
Muchas gracias por responder.

El código que estoy usando es 

Private Sub Comando0_Click()
Dim IE As InternetExplorer 'Reference to Microsoft Internet Controls
    Set IE = New InternetExplorer
    
    With IE
        .Visible = True
        .Navigate2 "www.abctelefonos.com\indice_espana\huelva\cartaya\pag_54"

        
        'we add a loop to be sure the website is loaded and ready.
        'Does not work consistently. Cannot be relied upon.
        Do While .Busy = True Or .ReadyState <> READYSTATE_COMPLETE 'Equivalent = .ReadyState <> 4
            ' DoEvents - worth considering. Know implications before you use it.
            'Application.Wait (Now + TimeValue("00:00:01")) 'Wait 1 second, then check again.
        Loop
               'Print info in immediate window
        With .Document 'the source code HTML "below" the displayed page.
            'Stop 'VBE Stop. Continue line by line to see what happens.
        Dim cadena As String
        cadena = IE.Document.getElementByClassID("maincontent").getElementsByName("results")(1).getElementsByName("resultitem").getElementsByName("name")
        
        .Quit 'close the application window
        End With
    End With
End Sub


Siempre obtengo el mismo resultado:
error 438

He acabado haciendo combinaciones de las instruccciones de toda las maneras que se me ha ocurrido, pero nada de nada.

Muchas gracias por tu ayuda.

Quería probar cosas nuevas, salir de lo de siempre, pero vaya si me atollado!!!
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable