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
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


0