javascript - 从网页中提取表格

标签 javascript html excel vba web-scraping

我要在网页“https://www.bseindia.com/markets/equity/EQReports/StockPrcHistori.aspx?expandable=7&scripcode=503100&flag=sp&Submit=G”上提取具有类似“日期|开盘价|高价|低价|收盘价|股票数量|交易数量|总成交量|可交付数量”的表格

下面是我的代码:

Sub Macro_BSE()


  Application.ScreenUpdating = False

  Dim FileName, Pathname As String

    MP = ActiveWorkbook.Name

    Workbooks.Add
    WB2 = ActiveWorkbook.Name

    Dim IE As New SHDocVw.internetexplorer

    Const MAX_WAIT_SEC As Long = 5
    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
    Dim hTable As HTMLTable
    Dim clipboard As Object

    IE.Visible = True
    IE.navigate "https://www.bseindia.com/markets/equity/EQReports/StockPrcHistori.aspx?expandable=7&scripcode=503100&flag=sp&Submit=G"
    While IE.readyState <> 4: DoEvents: Wend

       Application.Wait (Now + TimeValue("00:00:02"))

    IE.document.querySelector("#ContentPlaceHolder1_rdbDaily").Click

    IE.document.querySelector("[name='ctl00$ContentPlaceHolder1$txtFromDate']").Value = "28/11/2018"
    IE.document.querySelector("[name='ctl00$ContentPlaceHolder1$txtToDate']").Value = "28/12/2018"
    IE.document.querySelector("[name='ctl00$ContentPlaceHolder1$btnSubmit']").Click

    Application.Wait (Now + TimeValue("00:00:10"))

     T = Timer
        Do
            On Error Resume Next
            Set hTable = IE.document.querySelector("#ContentPlaceHolder1_spnStkData 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
            Workbooks(WB2).Worksheets("Sheet1").Range("A1").PasteSpecial

        End If

End Sub

我现在无法提取该表。早些时候我能够从相同的代码中提取

请提出更改建议

最佳答案

您永远不会创建剪贴板对象的实例。在尝试将文本放入其中之前执行此操作。

Set clipboard = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
clipboard.SetText hTable.outerHTML

关于javascript - 从网页中提取表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54977652/

相关文章:

html - 拖动旋转 SVG :g group

excel - 获取字典对象的项

JavaServlet : Unable to create Excel File

javascript - 如何减少重复代码.of ( document.getElementById().value = )

javascript - 从 3 个输入获取并同时替换

html - 如何在同一个 div 中使用相同的 Sprite 图像作为具有不同位置(一个位置在另一个位置上)的背景图像?

vba - 在 Outlook 邮件中添加多个抄送

javascript - *Highchart* 连续下载两次时图表颜色变化

javascript - 如果名称在列中,则将该列转换为日期格式 Google 表格

javascript - 删除从...到