从下拉列表中选择一个选项excel vba scraping

时间:2018-02-11 22:02:31

标签: excel vba select web-scraping option

如何从下拉选项中选择项目(下拉列表在表格结构中)



Sub Test()
    Dim ie          As Object
    
    Set ie = CreateObject("InternetExplorer.Application")
    
    With ie
        .Visible = True
        .navigate ("http://www.handelsregisterbekanntmachungen.de/?aktion=suche#Ergebnis")

        Do: DoEvents: Loop Until .readyState = 4
        
        '.document.getElementsByClassName("vt").Value = "1"
    End With
End Sub




检查元素时,我发现name attribute =" vt" .. 感谢先进的帮助

2 个答案:

答案 0 :(得分:0)

我可以通过循环标记名称“select”

来解决这个问题

    For Each e In ie.document.getElementsByTagName("select")
        'Stuff of code
    Next e

非常感谢

答案 1 :(得分:0)

更通用的是使用CSS选择器。

从目标元素中收集所有选项,并为所需选项建立索引:

例如,在日期下拉菜单中输入vt,您可以使用[name = vt]选项

第一个选择器将匹配目标父元素中具有name属性且值为vt的所有选项标签元素。

enter image description here

选择器组合是一个后代组合器,包括一个前导属性选择器,以针对当天的父项下拉列表为目标。由于需要一个以上的元素(所有选项),所以querySelectorAll方法用于返回一个nodeList,该索引被索引到其中以将特定选项设置为selected:

Set list = .querySelectorAll("[name=vt] option") '<==nodeList
list.item(1).Selected = True 

最后一行针对下拉菜单的第1天选项。

CSS查询结果示例:


直接选择一个选项

再次使用Datum der Bekanntmachung中的日期下拉列表,您可以使用CSS选择器

[name=vt] option[value='2']

这是另一个结合了两个属性选择器的后代组合器。父元素具有name的{​​{1}}属性,而目标单数选项,子元素具有vt标签和属性option的值为value。这是针对下拉菜单的第2天选项。


VBA:

2