在VBA中按类废弃HTML

时间:2016-02-09 16:10:18

标签: html excel-vba web-scraping getelementsbyclassname vba

我有一个如图所示的HTML代码



<div class="property-title visible-xs">
                                        <a href="/property/473902/Office-Lot">
                                            <h2><b> 2nd Floor, Block D5, Solaris Dutamas, No. 1, Jalan Dutamas 1, 50480, Kuala Lumpur</b></h2>
                                        </a>
                                    </div>
                                    <p style="color: #0071ee;">Office Lot</p>
                                    <h4><b>RM 880,000</b></h4>
                                    <div>
                                        <table>
                                        <!-- <tr><td>Office Lot</td></tr> -->
                                            <tr>
                                                <td>Property Code</td><td>:</td><td>PB473902</td>
                                            </tr>
                                                                                            <tr>
                                                    <td>Auction Date</td><td>:</td><td>2016-02-26</td>
                                                </tr>
                                                                                        <tr>
                                                <td>Built up  </td><td>:</td><td>754 sq.ft  </td>
                                            </tr>
                                                                                            <tr>
                                                    <td>Tenure</td><td>:</td><td>Freehold</td>
                                                </tr>
&#13;
&#13;
&#13;

我使用以下代码提取详细信息&#34;第二层,D5区块,....&#34;

objIE1.Document.getElementsByClassName(&#34; property-title visible-xs&#34;)。getElementsByTagName(&#34; a&#34;)

但它似乎无法得到我需要的结果。请帮忙。

显示的html代码有多种形式。

1 个答案:

答案 0 :(得分:0)

这将有效:

extract1 = objIE1.Document.getElementsByClassName("property-title visible-xs")(0).getElementsByTagName ("a")(0).innerText
Cells(1,1).Value = extract1

当函数具有getElementsBy(复数 - &#34;元素&#34;),例如getElementsByClassNamegetElementsByTagName时,代码将提取元素集合,因此您需要指定您想要哪一个,在这种情况下,它是html0的第一个。当函数使用getElementBy(单数 - &#34;元素&#34;),例如getElementById时,这会提取单个元素,因此不需要索引规范,因为没有集合。