Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
要使用excel vba选择网站上的按钮吗_Excel_Vba_Web Scraping - Fatal编程技术网

要使用excel vba选择网站上的按钮吗

要使用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

我想使用excel浏览网页。然而,该网站不像普通网站(亚马逊、谷歌等)那样使用ID。该网站是。如何选择“预订演示”按钮。我通常会使用getelementbyID,但我不知道id。我也尝试过标记和类,但运气不佳

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的代码,还是我缺少一条捷径?再次感谢你,你帮了我很大的忙@安德鲁,很乐意帮忙。别忘了把它作为答案!