我目前正在尝试使用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>
谢谢!