Cómo recoger datos concretos de acciones específicas de una web en excel

Tengo un Excel con una columna con los nombres de unas acciones que cotizan en diferentes mercados mundiales. Quisiera saber si, desde una web especializada en bolsa, se puede recoger un dato concreto de cada una de esas acciones que tengo, y colocarlo en la celda contigua a esa acción.

Imagino que sería a través de programación algo compleja.

2 respuestas

Respuesta
1

I. Hola Daniel, en mi caso no fui capaz de encontrar la información necesaria ni soy experto, pero deseaba dejarle los resultados de una búsqueda en Inglés y en especial a ofrecerme para trasladar su consulta a un experto en caso de que no llegasen respuestas.

Pienso que podría recurrirse a realizar una macro mediante VBA, pero tampoco lo sé.

https://stackoverflow-com.translate.goog/questions/76499653/extract-financial-data-from-webpage-to-excel?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc

 https://www.youtube.com/watch?v=HZU2OtDa2eI 

Le ruego me disculpe todas las molestias de lectura, mucho ánimo.

https://oxylabs-io.translate.goog/blog/web-scraping-excel-web-query?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://www-octoparse-com.translate.goog/blog/scraping-data-from-website-to-excel?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc&_x_tr_hist=true 

https://stackoverflow-com.translate.goog/questions/60643110/excel-get-data-from-web?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://www.youtube.com/watch?v=KHn-fbjJ_l4 

https://www.youtube.com/watch?v=EOhSODFLqic 

https://www.youtube.com/watch?v=oSxCUxyTjmI 

https://www.youtube.com/watch?v=rElBevSwC0s  

https://www-matthewdevaney-com.translate.goog/power-automate-desktop-data-entry-from-excel-to-website/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://stackoverflow-com.translate.goog/questions/6312780/sending-data-from-excel-to-server-using-http-post?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc

https://docs.automationanywhere.com/es-ES/bundle/enterprise-v11.3/page/enterprise/topics/aae-client/bot-creator/commands/example-extracting-data-from-excel-to-a-webform.html 

https://stackoverflow.com/questions/954087/sending-data-from-excel-to-a-website 

https://stackoverflow.com/questions/61108220/post-data-to-server-using-excel-add-in 

https://www.linkedin.com/pulse/c%C3%B3mo-usar-las-funciones-web-y-de-internet-con-excel-para-villena-sotae?originalSubdomain=es 

Respuesta
1

Puede que VBA no sea la mejor herramienta. De todos modos, solo por diversión, escribí un código muy contundente

Option Explicit
Public Sub Download()
    ' Declaraciones.
    Dim xmlhttp As New MSXML2.XMLHTTP60
    Dim StrURL As String
    Dim StrResult As String
    Dim StrMessageTitle As String
    Dim StrMessageContent As String
    Dim VarResult() As Variant
    Dim RngResult As Range
    Dim DblCounter As Double
    ' Configuración.
    Set RngResult = Range("A1") ' Cambia esto si quieres colocar los resultados en otra celda
    ' Establecer la URL de la página.
    StrURL = "https://finance.yahoo.com/quote/VOO?p=VOO&.tsrc=fin-srch"
    ' Limpiar la columna de RngResult.
    RngResult. EntireColumn. ClearContents
    ' Configuración de la solicitud.
    xmlhttp.Open "GET", StrURL, False
    ' Enviar la solicitud.
    xmlhttp.send
    ' Comprobación de la respuesta.
    If xmlhttp.responseText <> "" Then
        ' Extracción del título.
        StrMessageTitle = Split(xmlhttp.responseText, "<title>")(1)
        StrMessageTitle = Split(StrMessageTitle, "</title>")(0)
        StrMessageTitle = HtmlDecode(StrMessageTitle)
        ' Extracción del precio usando un split. Asegúrate de que el HTML coincida con esta estructura.
        StrMessageContent = Split(xmlhttp.responseText, "class=""Fw(b) Fz(36px) Mb(-4px) D(ib)""")(1)
        StrMessageContent = Split(StrMessageContent, "</fin-streamer>")(0)
        StrMessageContent = Split(StrMessageContent, ">")(1)
        ' Colocar el valor del precio en una celda en lugar de MsgBox.
        RngResult.Offset(0, 1).Value = StrMessageContent
        ' Si quieres ver el contenido completo de la respuesta en la hoja de Excel.
        StrResult = xmlhttp.responseText
        ReDim VarResult(1 To UBound(Split(StrResult, ">")), 1 To 1)
        For DblCounter = 0 To UBound(Split(StrResult, ">")) - 1
            VarResult(DblCounter + 1, 1) = Split(StrResult, ">")(DblCounter) & ">"
        Next
        Application.ScreenUpdating = False
        ' Colocar todo el contenido en la columna A.
        For DblCounter = 1 To UBound(VarResult)
            RngResult.Offset(DblCounter - 1, 0).Value2 = VarResult(DblCounter, 1)
        Next
        Application.ScreenUpdating = True
    End If
End Sub
Function HtmlDecode(str As String) As String
    ' Decodificación básica de caracteres HTML.
    Dim dom As Object
    Set dom = CreateObject("htmlfile")
    dom.Open
    dom.Write str
    dom.Close
    HtmlDecode = dom.body.innerText
End Function

Fuente:
https://stackoverflow-com.translate.goog/questions/76499653/extract-financial-data-from-webpage-to-excel?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas