如何从span标签内抓取在线数据

时间:2019-04-25 11:54:57

标签: html excel vba web-scraping

我试图获取“单向附加费”描述中定义的R1200值。我尝试使用各种获取元素的方法,但未能获取信息。这个想法是,我想获取1200的值并将其粘贴到excel中的单元格中。我是vba和html的新手。

我已经设法通过单击相关输入来使抓取工具导航到有问题的特定网页,以下是我尝试获取该值的示例代码。

这是值所在的HTML:

<div class="itinerary-column">
<div class="optional-extras">
<h4>
Price Summary
</h4>
<ul class="clearfix extras">

<li>
Document admin fee<span>R 99.00</span>
</li>
<li>
Vehicle Rental <span>R 1575.00</span>
</li>
<li>
<!--This is part of the temporary solution to show the oneway surcharge-->
One Way Drop Off Surcharge<span>R 1200.00</span>
</li>
</ul>
</div>
<div class="total-price clearfix">
Total

<span>
R
<span class="value">
2874.00
</span>
</span>
</div>
<div class="deposit">
<div class="clearfix">
<div class="deposit-req">
Deposit required
<span>(Not included in total)</span>
</div>
<div class="value">
R <span>4170.20</span>
</div>
</div>
</div>
<div class="excess-message">
Rate incl 200 KMS free per day.Extra @ ZAR2.12 p k
</div>

</div>

这是我尝试获取值的代码:

'Cells(r, 3).Value = appIE.document.getElementsByClassName("optional-extras").innerHTML
'Cells(r, 2).Value = appIE.document.getElementsByClassName("optional-extras").innerText
Cells(r, 6).Value = appIE.document.getElementsByClassName("optional-extras").innerHTML
Cells(r, 6).Value = appIE.document.getElementsByClassName("clearfix extras").innerHTML
'Cells(r, 4).Value = appIE.document.getElementsByClassName("clearfix extras").innerText
'Cells(r, 5).Value = appIE.document.getElementsByClassName("clearfix extras").innerHTML
'Cells(r, 6).Value = appIE.document.getElementsByTagName("ul").Item(25).innerText   'yields something

2 个答案:

答案 0 :(得分:0)

如果您想从远程(或本地!)网页上抓取标签内部,只需在下面的免费DOM解析器中使用
PHP Simple HTML DOM Parser
有一个很好的手册和样本,使用起来非常简单...

答案 1 :(得分:0)

clearfix extras的复合类别有多少个元素?作为一般选择器,以下是正确的:.clearfix.extras li:nth-​​of-type(3)span

用法如下:

Debug.Print appIE.document.querySelector(".clearfix.extras li:nth-of-type(3) span").innerText

但是,如果您的项目不在该复合类的第一个元素中,则css选择器将需要扩展以解决该问题

OP表示手头的情况下3必须为2