VBA - 尝试通过HTML从网页中提取信息,但无法在{{}}内返回值

时间:2016-07-08 13:52:53

标签: excel-vba vba excel

我目前正在尝试使用VBA将一些数据从网页返回到Excel。有问题的网站链接如下:

http://thecise.com/market/securities/3160

我想从"类别中提取数据:"上市,在这种情况下读取"对冲基金"。

我以前从以下帖子中使用了一些代码放在一起:VBA HTML Tag Hierarchy,它以当前形式提取HTML列表中的所有信息,但不起作用"类别:"标题。

我对HTML不太熟悉,但差异似乎是此标题的HTML代码包含{{}}中包含的一些参考值,而不是文本" Hedge Fund&#34 ;与其他列表项一样。

<li>
    <span>Category:</span>
    <span>{{security.s_cmpycat}}</span
</li>

有没有办法可以调整下面的代码来返回网站上显示的值,而不是原始的HTML代码? (即返回价值&#34;对冲基金&#34;而不是&#34; {{security.s_cmpycat}}&#34;我也试过使用来自Excel的&#34;来自Web&#34;数据提取工具但那也没有用。

我意识到下面的代码列出了所有列表值,而不仅仅是上面的列表值,但我还没有进一步调整它,直到我弄清楚如何返回正确的值。

VBA代码:

Sub GetCISEDAta()

Dim xHttp As MSXML2.XMLHTTP
Dim hDoc As MSHTML.HTMLDocument
Dim hUls As MSHTML.IHTMLElementCollection
Dim hUl As MSHTML.HTMLListElement
Dim hLi As MSHTML.HTMLLIElement

Set xHttp = New MSXML2.XMLHTTP
xHttp.Open "GET", "http://thecise.com/market/securities/3160"
xHttp.send

Do
    DoEvents
Loop Until xHttp.readyState = 4

Set hDoc = New HTMLDocument
hDoc.body.innerHTML = xHttp.responseText
Set hUls = hDoc.getElementsByTagName("ul")

For Each hUl In hUls
        For Each hLi In hUl.Children
               Debug.Print hLi.innerText
        Next hLi
Next hUl

End Sub

HTML代码部分:

            <div class="row">

                <div class="security-listing-col security-listing-registration-data">
                    <ul class="dl-list list-unstyled">
                        <li>
                            <span>ISIN:</span>
                            <span>GG00B247XG70</span>
                        </li>
                        <li>
                            <span>Date Listed:</span>
                            <span>28-09-2007</span>
                        </li>
                        <li>
                            <span>Domicile:</span>
                            <span>Guernsey</span>
                        </li>
                        <li>
                            <span>Sponsor:</span>
                            <span><a href="/members/current-members/2721">Vistra Fund Services (Guernsey) Ltd</a></span>
                        </li>
                        <li>
                            <span>Category:</span>
                            <span>{{security.s_cmpycat}}</span>
                        </li>
                    </ul>
                </div>

                <div class="security-listing-col security-listing-col-hidemd">
                    <div class="hr mb-20"></div>
                </div>

谢谢!

0 个答案:

没有答案