Saltar al contenido

Obteniendo la temperatura de los próximos días


digitalboy

Recommended Posts

En esta ocasión vamos a extraer la temperatura de un portal de internet, de la siguiente página: openweathermap.org/city/3530597 que muestra la temperatura de los próximos días de la ciudad de México.

Para efectuar esta tarea haremos uso del objeto Internet Explorer para poder navegar a dicha página y una vez cargada la misma empezamos a realizar la extracción del texto correspondiente y lo vaciamos en las celdas de nuestro libro.

Antes que nada tendremos que agregar la referencia necesaria para trabajar con el navegador de la siguiente forma:


Sub Clima()
Dim oIE As InternetExplorer
Dim sContenido As String
Dim lPosicion As Long
Dim vContenido As Variant
Dim i As Integer

Set oIE = New InternetExplorer 'aqui se crea y se ejecuta una instancia del navegador

With oIE
.Visible = True 'con esta instruccion hacemos visible el navegador
.Navigate "http://openweathermap.org/city/3530597"

'esperamos hasta que se haya cargado la pagina en el navegador
While .ReadyState <> READYSTATE_COMPLETE: DoEvents: Wend

sContenido = .Document.body.innertext 'se almacenatodo el texto desplegado por la pagina

'vemos que la cadena "next days" solo aparece una vez en el texto de la pagina y de ahi en adelante viene la
'temperatura de los dias siguiente...
lPosicion = InStr(1, sContenido, "Next Days", vbTextCompare) 'encontramos su posicion
sContenido = Mid(sContenido, lPosicion + Len("Next Days"), 1000) 'cortamos la cadena
vContenido = Split(sContenido, vbNewLine) 'spliteamos por linea de texto

'procesamos cada linea de texto, vemos que las lineas que nos interesan tienen una ma longitud menor a
'40 caracteres (a ojo de buen cubero)
For i = LBound(vContenido) To UBound(vContenido)
If Len(vContenido(i)) > 0 And Len(vContenido(i)) < 40 Then
Range("A65500").End(xlUp).Offset(1, 0) = vContenido(i) 'escribos la info en nuestra hoja de excel
End If
Next

.Quit 'cerramos el navegador para que no cnsuma memoria
MsgBox "Temperaturas extraidas con éxito", vbInformation
End With
End Sub

[/CODE]

El resto del articulo junto con la macro y codigo de ejemplo pueden descargaro de:

Web scraping – Obteniendo la temperatura de los próximos días

Saludos!

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.