VBA - 在未指定ID时使用getElementById

时间:2016-01-20 17:45:33

标签: html excel vba web-scraping

我正在修改一个相当广泛的VBA Web scraper,并在没有指定实际id时寻找有关如何通过id获取元素的建议。

<ul class="rtUL">
    <li class="rtLI"><div class="rtMid">
    <span class="rtSp"></span><span class="rtPlus"></span>
    <a class="rtIn" href="/mhpviewer.aspx?FID=CSTAT">Claim Status</a>
    </div></li><li class="rtLI"><div class="rtMid">
    <span class="rtSp"></span><span class="rtPlus"></span>
    <a class="rtIn" href="/mhpviewer.aspx?FID=EVER">Eligibility Verification</a>

我需要获得的元素是包含“资格验证”的<li>。有没有办法获得子元素或内部HTML?

2 个答案:

答案 0 :(得分:2)

我假设您正在使用InternetExplorer.Application(版本8及更高版本),已设法检索页面,格式符合您的问题。

Set Data = IE.Document.querySelectorAll("li>div>a") 
'looks for tag `a` inside tag `div` inside tag `li`

For Each oA In Data
    If oA.InnerHTML = "Eligibility Verification" Then
        Set oLI = oA.ParentNode.ParentNode
        Debug.Print oLI.InnerHTML
    End If
Next oA

答案 1 :(得分:0)

CSS选择器:

您可以使用.rtIn[href=/mhpviewer.aspx?FID=EVER]的CSS选择器。这说 具有属性rtin的{​​{1}}类的元素,值为href


CSS查询:

CSS query


VBA:

您可以使用

申请第一个匹配元素
'=/mhpviewer.aspx?FID=EVER'