如何在Yahoo Finance中单击搜索按钮

时间:2018-11-28 21:55:58

标签: excel vba excel-vba web-scraping

我正在尝试简化电子表格,希望对您有所帮助。我在Yahoo财务中搜索APPL股票的代码如下。如何点击点击按钮?我相信我的问题是代码的最后一行中的“搜索按钮”。

Sub browsetosite()

    Dim IE As New SHDocVw.InternetExplorer

    IE.Visible = True
    IE.navigate "www.finance.yahoo.com"

    Do While IE.ReadyState <> READYSTATE_COMPLETE
    Loop
    Debug.Print IE.LocationName, IE.LocationURL

   IE.Document.forms("input").elements("yfin-usr-qry").Value = "APPL"
   IE.Document.forms("input").elements("**search-button**").Click

End Sub

2 个答案:

答案 0 :(得分:1)

好的,经过测试后,问题似乎在于Yahoo的页面加载了很多的东西。

在添加股票代码之前,我添加了十秒钟的等待时间。把握时间,可以减少一些时间。

https://finance.yahoo.com/quote/[SYMBOL]

但是,如上所述,如果您知道要查找的符号,则最好直接导航到!important

答案 1 :(得分:0)

我没有任何等待或集中注意力的要求。使用ID尽可能快地定位目标,并且CSS选择器比当前语法快得多。

Option Explicit
Public Sub BrowseToSite()
    Dim IE As SHDocVw.InternetExplorer
    Set IE = New SHDocVw.InternetExplorer
    With IE
        .Visible = True
        .Navigate2 "www.finance.yahoo.com"

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

        With .document
            .querySelector("[name='yfin-usr-qry']").Value = "APPL"
            .querySelector("#search-button").Click
        End With
        While .Busy Or .readyState < 4: DoEvents: Wend
    End With
End Sub