Saltar al contenido
View in the app

A better way to browse. Learn more.

Ayuda Excel

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Obteniendo la temperatura de los próximos días

publicado

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!

Featured Replies

publicado

Los meteorólogos que aun no hayan entrado a este aviso se están perdiendo de lo que es una eficaz herramienta para su trabajo. Si encuentro a alguno de ellos seguro que les pasaré el dato.

Excelente aporte

Archivado

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.