Visual Basic - Macro para Leer codigo HTML

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 21
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Macro para Leer codigo HTML

Publicado por Blas (15 intervenciones) el 07/05/2020 19:52:42
Holisimas a todos.espero q se encuentren muy bien.

En VBA (Excel ) me encuentro con un problema.

intento ingresar al codigo de una pagina WEB. al parecer entra en la pagina lee el codigo y lo extrae
pero analizando lo que extrae es la pagina web sin los datos que me interesan.

Veamos.
la parte que debe leer de la pagina web esta en la etiqueta h1, que corresponde al titulo del libro
pero me devuelve el texto con page unavailable
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Sub navegar()
Dim ie As InternetExplorer 'debe habilitarse la Referencia a Microsoft Internet Controls
Set ie = New InternetExplorer  'Establece que IE sera una nueva instancia de IExplorer
Dim web_about
web_about = "https://link.springer.com/book/10.1007%2F978-0-387-21736-9#about"
 
With ie     ' Acciones a realizar con IE
 
 
        .Navigate2 web_about 'Navegar en el Browser a una ubicacion que puede no estar representada como URL
 
        Do Until ie.ReadyState = READYSTATE_COMPLETE    ' Hara un bucle aca mismo hasta completar la pagina
           DoEvents
 
        Loop           ' Hara un loop
        .Visible = False    ' No necesitamos ver la pagina, solo extraer los datos
 
 
 
'************************
'Ocultamos el procedimiento
Application.ScreenUpdating = False
'Si hay errores, que continúe
On Error Resume Next
'pasamos a una variable, la página de la
'que vamos a sacar la información
'pasamos la parte que rodea al texto que
'nos interesa, a variables
Dim principio
principio = "<h1>"
Final = ""
Final = "</h1>"
'creamos el objeto xmlhttp
Dim xml
Set xml = CreateObject("Microsoft.XMLHTTP")
'accedemos a la página web
xml.Open "POST", web_about, False
'mandamos el contenido
xml.send
'pasamos el contenido a una variable
Dim texto
texto = xml.responseText
'miramos en que nº de carácter aparecen los textos
'que envuelven la información que necesitamos.
'Primero con la posición inicial
Dim posicion1, posicion2
Sheets("Hoja2").Range("A1") = texto
posicion1 = InStr(texto, principio) + 4
'ahora con la posición final
posicion2 = InStr(texto, Final)
'recuperamos el texto que hay entre esas dos posiciones
Dim dato
dato = Mid(texto, posicion1, (posicion2 - posicion1))
Sheets("Hoja2").Range("B1") = dato
 
End With
End Sub
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