Как извлечь данные таблицы из веб-страницы с помощью VBA - PullRequest
0 голосов
/ 21 декабря 2018

КОД VBA

Sub Test()
    Dim ie As Object
    Dim frm As Variant
    Dim element, submitInput As Variant
    Dim rowCollection, htmlRow As Variant
    Dim rowSubContent, rowSubData As Variant
    Dim anchorRange As Range, cellRng As Range
    Dim start
    Dim A As String
    Set ie = CreateObject("InternetExplorer.Application")
    ie.navigate "https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuote.jsp?symbol=INFY"
    While ie.readyState <> 4: DoEvents: Wend
    ie.Visible = True
    A = ie.Document.getElementByID("tab20Content").innerText   
End Sub

КОД HTML

<div id="tab20Content" class="tabContent" style="display: block; width: 230px;"><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><th class="normalText">Quarter Ended</th><th class="date">30 Sep 2018</th><th class="date">30 Jun 2018</th></tr><tr><td class="normalText" title="Total Income">Total Income</td><td class="number">18,29,700.00</td><td class="number">17,05,600.00</td></tr><tr><td class="normalText" title="Profit (+)/Loss (-) before Interest, Dep. &amp; Taxes">PBT</td><td class="number">5,25,100.00</td><td class="number">4,78,200.00</td></tr><tr><td class="normalText" title="Net Profit (+)/Loss (-) for the Period"

Существует одна таблица

Quarter Ended     30 Sep 2018     30 Jun 2018
Total Income      18,29,700.00    17,05,600.00
PBT               5,25,100.00     4,78,200.00
Net Profit/Loss   3,87,900.00     3,50,300.00

Как извлечь данные таблицы (включая даты с четвертным концом), используя несколько выборок запросов или любой другой обычно используемый метод?

1 Ответ

0 голосов
/ 21 декабря 2018

Похоже, вам нужно перейти на вкладку информации о компании, чтобы отобразить эту таблицу

Option Explicit

Public Sub GetInfo()
    Dim ie As InternetExplorer, clipboard As Object, ws As Worksheet, t As Date, hTable As HTMLTable
    Const MAX_WAIT_SEC As Long = 5
    Set ie = New InternetExplorer
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    Set clipboard = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    With ie
        .Visible = True
        .navigate2 "https://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuote.jsp?symbol=INFY"

        While .Busy Or .readyState < 4: DoEvents: Wend

        'code to ensure table displayed.
        ie.document.querySelector("#tab6").Click

        t = Timer
        Do
            On Error Resume Next
            Set hTable = ie.document.querySelector("#tab20Content table")
            On Error GoTo 0
            If Timer - t > MAX_WAIT_SEC Then Exit Do
        Loop While hTable Is Nothing
        If Not hTable Is Nothing Then
            clipboard.SetText hTable.outerHTML
            clipboard.PutInClipboard
            ws.Cells(1, 1).PasteSpecial
        End If
        .Quit
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...