Estoy tratando de recopilar datos de un sitio web, que debe ser manejable una vez que la fuente es en forma de cadena. Mirando a su alrededor, he reunido algunas de las posibles soluciones, pero se han topado con problemas con todos ellos:

  1. Utilice Partir De Internet Explorer.La aplicación para abrir la dirección url y, a continuación, acceder al código HTML interno
  2. Inet
  3. uso de comandos de Shell para ejecutar el comando wget

Aquí son los problemas que estoy teniendo:

  1. Cuando me almacenar el innerHTML en una cadena, no es la totalidad de la fuente, sólo una fracción
  2. ActiveX no permite la creación de la Inet objeto (error 429)
  3. Tengo el htm en una carpeta en mi ordenador, ¿cómo la obtengo en una cadena en VBA?

Código 1:

Sub getData()
Dim url Como Cadena, es decir, Como Objeto, el estado Como Entero
Dim texto as Variant, comienza Como Entero, termina Como Entero

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = 0

url = "http://www.eoddata.com/stockquote/NASDAQ/AAPL.htm"
ie.Navigate url


state = 0
Do Until state = 4
    DoEvents
    state = ie.readyState
Loop


text = ie.Document.Body.innerHTML
startS = InStr(ie.Document.Body.innerHTML, "7/26/2012")
endS = InStr(ie.Document.Body.innerHTML, "7/25/2012")


text = Mid(ie.Document.Body.innerHTML, startS, endS - startS)

MsgBox text
  • Cómo de grande es el texto html? Puede mostrar el código que estás usando, junto con la url? Me refiero al punto 1.
  • Si los datos tabulares de la naturaleza, obtener datos externos pueden trabajar mejor para usted que el bajo nivel de planteamiento que usted ha intentado hasta ahora
  • Aquí está la dirección url: eoddata.com/stockquote/NASDAQ/AAPL.htm
InformationsquelleAutor user1575474 | 2012-08-04

1 Comentario

  1. 1

    Si yo estaba tratando de tirar el precio de apertura fuera de 08/10/12 fuera de la página, la cual es similar a lo que supongo que usted está haciendo, me gustaría hacer algo como esto:

        Set ie = New InternetExplorer
        With ie
            .navigate "http://eoddata.com/stockquote/NASDAQ/AAPL.htm"
            .Visible = False
            While .Busy Or .readyState <> READYSTATE_COMPLETE
               DoEvents
            Wend
            Set objHTML = .document
            DoEvents
        End With
        Set elementONE = objHTML.getElementsByTagName("TD")
        For i = 1 To elementONE.Length
            elementTWO = elementONE.Item(i).innerText           
            If elementTWO = "08/10/12" Then
                MsgBox (elementONE.Item(i + 1).innerText)
                Exit For
            End If
        Next i
        DoEvents
        ie.Quit
        DoEvents
        Set ie = Nothing

    Usted puede modificar esto para que se ejecute a través de HTML y tire de los datos que desea. Iteración +2 devolvería el alto precio, etc.

    Ya que hay un montón de fechas en esta página usted puede también quiero hacer es comprobar que está entre la Reciente Final del Día los Precios y el perfil de la Empresa.

Dejar respuesta

Please enter your comment!
Please enter your name here