|
Responder ![]() |
Autor | |
annuroic ![]() Nuevo ![]() Unido: 31/Marzo/2020 Localización: Huelva Estado: Sin conexión Puntos: 3 |
![]() 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
|
|
![]() |
|
lbauluz ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3841 |
![]() |
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
|
|
![]() |
|
annuroic ![]() Nuevo ![]() Unido: 31/Marzo/2020 Localización: Huelva Estado: Sin conexión Puntos: 3 |
![]() |
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!!!
|
|
![]() |
Responder ![]() |
|
Tweet
|
Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |