VBA excel。与Internet Explorer网页的源代码进行交互

时间:2019-03-05 21:00:52

标签: excel vba

因此,我目前正在一个项目中,尝试从网页上抓取数据并将其导出到excel。这个问题已经探讨了很多次,但是我觉得有一个简单的问题尚待解答。很多时候,网页的来源会“隐藏”所有有用的信息。

在我的情况下,我试图从中提取数据的excel表是从其他联机应用程序中获取数据。数据每天都在不断变化,我正在尝试开发一种工具来克服这一点。

我试图解决的问题:

  1. 我认为我可以从表中提取数据并使用此代码直接下载。
For Each Tab1 In HTML_Content.getElementsByTagName("table") 
    With HTML_Content.getElementsByTagName("table")(iTable)
        For Each ERow In .Rows
            For Each ECol In ERow.Cells
                Sheets(1).Cells(iRow, iCol).Select
                Sheets(1).Cells(iRow, iCol) = ECol.innerText
                iCol = iCol + 1
             Next ECol
             iCol = Column_Num_To_Start
             iRow = iRow + 1
        Next ERow
    End With
    iTable = iTable + 1
    iCol = Column_Num_To_Start
    iRow = iRow + 1
Next Tab1

这对于正在处理已经具有数据的网页源的人们非常有用。如果没有,您可能只会看到标题已导出到excel。

  1. 也许会执行某种“复制和粘贴”操作。
Dim ie As InternetExplorer
Set ie = New InternetExplorerMedium
ie.Visible = True
ie.Navigate Web_URL    
Application.Wait (Now + TimeValue("0:00:05"))
Set objCollection = ie.Document.getElementsByClassName("k-widget k-reset   k-header k-menu k-context-menu k-menu-vertical")
i = 0
While i < objCollection.Length
    If objCollection(i).ID = "menu" Then ' submit button clicking
        Set objElement = objCollection(i)
    End If
    i = i + 1
Wend
objElement.rClick

objElement.rClick无效,因为它不是真正的命令。这种方法的另一个问题是,实际上在网页上禁用了右键单击菜单。右键单击会弹出一个新菜单,因此要复制大量数据,您将需要手动突出显示和复制所有内容。这是一个单调乏味的过程,因此每天都不要这样做。

我的最后一个问题:有没有办法解决这个问题。我是否可以使用excel VBA从网站上抓取数据,从而禁用了右键单击按钮,并且网页源中没有我想要的数据?

0 个答案:

没有答案