要使用excel vba选择网站上的按钮吗
我想使用excel浏览网页。然而,该网站不像普通网站(亚马逊、谷歌等)那样使用ID。该网站是。如何选择“预订演示”按钮。我通常会使用getelementbyID,但我不知道id。我也尝试过标记和类,但运气不佳要使用excel vba选择网站上的按钮吗,excel,vba,web-scraping,Excel,Vba,Web Scraping,我想使用excel浏览网页。然而,该网站不像普通网站(亚马逊、谷歌等)那样使用ID。该网站是。如何选择“预订演示”按钮。我通常会使用getelementbyID,但我不知道id。我也尝试过标记和类,但运气不佳 Sub scoop() Set objie = CreateObject("InternetExplorer.Application") objie.Top = 0 objie.Left = 0 objie.Width = 1600 objie.Height = 900 objie.Vis
Sub scoop()
Set objie = CreateObject("InternetExplorer.Application")
objie.Top = 0
objie.Left = 0
objie.Width = 1600
objie.Height = 900
objie.Visible = True 'We can see IE
On Error Resume Next
objie.navigate ("http://scoopmae.com")
Do
DoEvents
Loop Until objue.readystate = 4
Application.Wait (Now + TimeValue("0:00:02"))
'MsgBox ("wait")
'click button
'objie.document.getElementsById("scoop-sort").Click
x = objie.document.getElementsByClassName("a")
Cells(1, 2) = x
End Sub
我可以通过这样做访问按钮
Sub test()
Dim oHtml As HTMLDocument
Dim oElement As Object
Set oHtml = New HTMLDocument
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "http://www.scoopmae.com/", False
.send
oHtml.body.innerHTML = .responseText
End With
Set mybtn = oHtml.getElementsByClassName("sf-button large orange default dropshadow")(0).getElementsByTagName("span")
i = 0
For Each oElement In mybtn
Debug.Print mybtn(i).innerText
i = i + 1
Next oElement
End Sub
确保转到工具->引用并添加对Microsoft HTML对象库[MSHTML.TLB]的引用
谢谢
米格尔你基本上是对的!!请确保添加2个引用: 1 Microsoft Internet控件 2.微软HTML对象库 阅读更多 请参阅此链接 代码如下:
Sub test()
Dim oHtml As HTMLDocument
Dim oElement As Object
Set oHtml = New HTMLDocument
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "http://www.scoopmae.com/", False
.send
oHtml.body.innerHTML = .responseText
End With
Set mybtn = oHtml.getElementsByClassName("sf-button large orange default dropshadow")(0).getElementsByTagName("span")
i = 0
For Each oElement In mybtn
Debug.Print mybtn(i).innerText
oElement.Click
i = i + 1
Next oElement
End Sub
我刚才就这个问题回答了一个非常类似的问题。谢谢,但我有个错误。我试着将护墙板设置为一个对象,但没用。我确实有我的参考资料集correctly@andrew,是我的错,复制粘贴又把我抓走了。再试一次。我为每个循环修复了错误的
Var
谢谢!它工作得很好。我将Debug.print mybtn(I).innerText更改为工作表(“sheet1”).Range(“A”&I+1)=mybtn(I).innerText。否则什么也不印。但我希望网页也可见。我尝试在with循环中设置HTMLDocument.visible=true,但没有成功。我习惯于将IE用于这些类型的应用程序。我应该重写IE的代码,还是我缺少一条捷径?再次感谢你,你帮了我很大的忙@安德鲁,很乐意帮忙。别忘了把它作为答案!