Excel VBA code that displays a 14 day weather forecast
The real question here is how to get only the p tags with a data-testid with the value of wxPhrase. This can be done using querySelectorAll().

Document.querySelectorAll(&quot;p[data-testid='wxPhrase']&quot;)

See Document.querySelectorAll().
You will need to add a reference to the Microsoft HTML Object Library and declare you document variable as HTMLDocument.

Dim Document As HTMLDocument


Loading the values into an Array will offer you the best performance.  It will not make a noticeable difference if you return 10 days or all the days of the month.
Refactored Code
Sub MiamiWeather()
    Dim Data As Variant
    Data = MiamiWeatherData
    
    Range(&quot;A1:B1&quot;).Value = Array(&quot;Date&quot;, &quot;Tempature&quot;)
    Range(&quot;A2&quot;).Resize(UBound(Data), 2).Value = Data
    
End Sub

Function MiamiWeatherData()
    Const URL = &quot;https://weather.com/weather/tenday/l/3881cd527264bc7c99b6b541473c0085e75aa026b6bd99658c56ad9bb55bd96e&quot;
    Dim responseText As String
    With CreateObject(&quot;MSXML2.XMLHTTP&quot;)
        .Open &quot;GET&quot;, URL, False
        .send
        responseText = .responseText
    End With
    
    Dim Document As HTMLDocument
    Set Document = CreateObject(&quot;HTMLFILE&quot;)
    Document.body.innerHTML = responseText

    Dim Children As IHTMLDOMChildrenCollection
    Set Children = Document.querySelectorAll(&quot;p[data-testid='wxPhrase']&quot;)
    Dim Results As Variant
    ReDim Results(1 To Children.Length, 1 To 2)
    Dim r As Long
    
    For r = 0 To Children.Length - 1
        Results(r + 1, 1) = Children(r).PreviousSibling.PreviousSibling.FirstChild.innerText
        Results(r + 1, 2) = Children(r).PreviousSibling.FirstChild.innerText
    Next
    
    MiamiWeatherData = Results
End Function