Excel - Web Scraping con VBA

 
Vista:
sin imagen de perfil

Web Scraping con VBA

Publicado por Ronald (2 intervenciones) el 04/09/2023 06:05:06
Hola a todos. El siguiente código en VBA, me devuelve el valor que requiero vacío, pero sí me devuelve texto de ciertos campos.

Sub webscraping()

Dim inter As Object
Dim CT As String
Dim Cui As String

If Not IsEmpty(Range("B3")) Then

Cui = Range("B3").Value

Set inter = CreateObject("INTERNETEXPLORER.APPLICATION")
inter.Visible = False

inter.NAVIGATE "https://ofi5.mef.gob.pe/ssi/Ssi/Index?tipo=2&codigo=2512258"

While inter.Busy Or inter.ReadyState <> 4

DoEvents

Wend

'CT = inter.document.getElementsByTagName("td")(47).innerText
CT = inter.document.getElementById("val_cta").innerText
[C4] = CT

inter.Quit

Else

MsgBox "Debe indicar el CUI a buscar"

End If

End Sub


En el CT que está comentado con una comilla, cuando paso el nombre de etiqueta "td" y le pongo la posición 46, me devuelve el texto de ese campo, pero, cuando le pongo la posición 47, que es el valor que deseo, me lo devuelve vacío. Igual, intenté utilizando el id de la etiqueta como se ve en el CT sin comentar.
Omitan la variable CUI...

Alguien sabe qué podría estar haciendo mal y por qué no me devuelve el valor solicitado?

Gracias de antemano...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Web Scraping con VBA

Publicado por Antoni Masana (2478 intervenciones) el 04/09/2023 12:53:52
En el mensaje del MsgBox pone: "Debe indicar el CUI a buscar" pero ¿Donde lo busca?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub webscraping()
    Dim inter As Object
    Dim CT As String
    Dim Cui As String
    If Not IsEmpty(Range("B3")) Then
        Cui = Range("B3").Value
 
        Set inter = CreateObject("INTERNETEXPLORER.APPLICATION")
 
        inter.Visible = False
        inter.NAVIGATE "https://ofi5.mef.gob.pe/ssi/Ssi/Index?tipo=2&codigo=2512258"
 
        While inter.Busy Or inter.ReadyState <> 4
            DoEvents
        Wend
 
       'CT = inter.document.getElementsByTagName("td")(47).innerText
        CT = inter.document.getElementById("val_cta").innerText
        [C4] = CT
        inter.Quit
    Else
        MsgBox "Debe indicar el CUI a buscar"
    End If
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Web Scraping con VBA

Publicado por Ronald (2 intervenciones) el 04/09/2023 16:26:46
El CUI es el código que está al final del enlace, se lo estaba concatenando con la variable CUI, pero para fines prácticos, lo incluí directamente en el enlace, porque lo que me interesa ahora es que me devuelva el valor solicitado.

Gracias y saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar