Извлечь данные из таблицы веб-сайта, которая имеет имя тега «таблица» и ничего больше - PullRequest
0 голосов
/ 26 ноября 2018

Данные для импорта находятся в таблице с именем тега «таблица» и ничем иным.

Когда я назначаю все таблицы на странице, я думаю, что они не считаются таблицей.

Sub PullData()

    Dim IE As New SHDocVw.InternetExplorer
    Dim hdoc As MSHTML.HTMLDocument
    Dim HEL As MSHTML.IHTMLElement
    Dim ha, hb, hc, hd, he, hf, hg, hh, hi, hj As String
    Dim i, x As Integer
    i = 2

    IE.Visible = True
    IE.navigate "https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuote.jsp?symbol=FEL"
    Do While IE.readyState <> READYSTATE_COMPLETE
    Loop

    Set hdoc = IE.document
    Set HEL = hdoc.getElementById("tab8")
    HEL.Click
    Set HEL = hdoc.getElementById("period")
    HEL.Value = "3months"
    Set HEL = hdoc.getElementById("get")
    HEL.Click

End Sub

1 Ответ

0 голосов
/ 26 ноября 2018

Вы можете использовать строку запроса в URL для возврата этой информации.Это означает, что вы можете сразу перейти к гораздо более быстрому XMLHTTP методу, который намного быстрее, чем открывать браузер и делать выборки.загрузка файла и использование его для бинарной загрузки:

Option Explicit

Public Sub DownloadFile()
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "GET", "https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/getHistoricalData.jsp?symbol=FEL&series=EQ&fromDate=undefined&toDate=undefined&datePeriod=3months&hiddDwnld=true", False
    http.send
    With CreateObject("ADODB.Stream")
        .Open
        .Type = 1
        .write http.responseBody
        .SaveToFile "C:\Users\User\Desktop\TestDownload.csv" '<== specify your path here
        .Close
    End With
    Debug.Print "FileDownloaded"
    Exit Sub
errhand:
    If Err.Number <> 0 Then
        Debug.Print Err.Number, Err.Description
        MsgBox "Download failed"
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...