【问题标题】:VBA web-scraping trigger a filter with a search termVBA网络抓取触发带有搜索词的过滤器
【发布时间】:2017-01-02 04:30:58
【问题描述】:

使用 VBA,我正在尝试以编程方式将 https://data.seattle.gov/Permitting/Electrical-Permits-Current/raim-ay5x 处的搜索词输入到输入元素中。只需输入 ieInput.value= "RENEWABLE ENERGY" 然后 ieInput.click 不会触发过滤器。

有什么想法吗?

我的测试代码:

子 EnterSearchTerm()

Dim ieApp As InternetExplorer
If ieApp Is Nothing Then Set ieApp = New InternetExplorerMedium

ieApp.navigate "https://data.seattle.gov/Permitting/Electrical-Permits-Current/raim-ay5x"
ieApp.Visible = True
While ieApp.Busy: DoEvents: Wend
While ieApp.readyState <> READYSTATE_COMPLETE: DoEvents:  Wend

Dim ieInput As HTMLInputElement
Set ieInput = ieApp.document.getElementsByClassName("searchField textPrompt prompt")(0)
ieInput.Value = "RENEWABLE ENERGY"
ieInput.Click

结束子

谢谢

【问题讨论】:

    标签: html vba internet-explorer web-scraping


    【解决方案1】:

    表单上似乎没有提交按钮,输入字段没有理由点击它不可点击的字段,当用户点击输入时,它会被javascript事件过滤,所以这里有两个解决方案你可以试试.

    1) 尝试确定当您单击 Enter 时触发了哪个 javascript 事件,当您找到函数名称时,只需在您的 vba 中添加这一行

        ie.Document.all.Item 
    Call ie.Document.parentWindow.execScript("ENTER HERE THE JAVASCRIPT FUNCTION NAME()", "JavaScript") 
    .submit 
    

    2)这种方法可能不是最好的做法,因为它仅在您的 ie 是您的当前窗口并且是活动窗口时才有效,但如果是这种情况,您可以执行以下操作。

    Application.SendKeys "~"
    

    【讨论】:

    • 看起来所有关键条目都通过 JQuery 定义的 object.method f.event 传递,包括输入搜索词的每个字母。现在,我将编写我的应用程序,让用户手动输入搜索词。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 2020-07-02
    • 2014-01-23
    • 1970-01-01
    • 2013-04-01
    • 2014-11-25
    相关资源
    最近更新 更多