【问题标题】:IE automation VBA Excel find element by titleIE自动化VBA Excel按标题查找元素
【发布时间】:2016-09-19 20:46:53
【问题描述】:

我正在尝试使用 Excel 宏 VBA 从网页获取一些信息。

我有 InternetExplorer.document 对象,但找不到找到我需要的确切信息的方法。

我正在寻找的 HTML 部分如下所示:

<a title="BE xxx.xxx.xxx - straat 70 - 3630 - Maasmechelen" class="leftalign floatleft" href="Page_companydetail.asp?vat=xxxxxxxxx" target="_blank">

 Oprichter van een onderneming natuurlijk persoon BE xxx.xxx.xxx 

我想要的信息是这里的标题。 我尝试了很多东西,但无法将这个元素单独挑出来并获得标题。

所以 1.有没有办法按标题(标题以BE开头)或按类sinds获取元素此信息是页面上唯一具有“leftalign floatleft”类的信息

【问题讨论】:

    标签: html vba excel


    【解决方案1】:

    是的...知道标题只是&lt;a&gt; 标签的另一个属性,您可以使用例如循环浏览所有关注的元素

    HtmlDocument.GetElementsByTagName(String) 方法

    并使用

    HtmlElement.GetAttribute(String)方法

    查看title属性是否存在以及它的值是什么

    更多信息请参见Reading Web Pages using Excel VBA

    【讨论】:

    • 谢谢,这非常适合页面上的其他元素,但不适用于我需要的。我尝试了一些非常相似的东西。我发现了一些新东西。如果我使用 DOM-explorer,我会看到我需要的信息,但是如果我显示页面的来源,我找不到它?是否有一些保护措施/这可能是我的问题吗?
    • 一个可能的限制因素可能是GetAttribute“仅公开所有元素共有的那些属性,而忽略那些仅适用于某些类型元素的属性” ... acc。 to msdn.microsoft.com/en-us/library/… ...我不知道这是否与 VBA/Excel 相关,我没有经验,因为我主要搜索标准属性
    【解决方案2】:

    这样的东西应该可以工作,我假设你已经有一个指向 IE 或文档对象的指针。

    Public Sub getTitleElement()
        Dim myElement As Object
    
        'Assuming you already have IE object/Document
        Set myElement = IE.Document.getElementsByClassName("leftalign floatleft")(0)
    
        Debug.Print myElement.Title
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2019-02-26
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 2021-01-25
      • 1970-01-01
      相关资源
      最近更新 更多