我有以下html部分
<div>
<p class="wholesaletext"> Χονδρική Τιμή: <br/>
<span id="our_price_display" class="price" itemprop="price" content="9.9">
<p class="wholesaletext">9,90 €
</span> χωρίς Φ.Π.Α
<meta itemprop="priceCurrency" content="EUR" />
</p>
</p>
</div>
我正在尝试通过以下内容从上方获取<p class=wholesaletext">
的文本
Set price = ie.Document.getElementsByTagName("span")
Dim lnk As Variant
For Each lnk In price
If lnk.className = "price" Then
wks.Cells(i, "E").Value = lnk.innerText
Exit For
End If
Next
我什么也没得到。
我尝试过
Set price = ie.Document.querySelector(".price .wholesaletext")
wks.Cells(i, "E").Value = price.innerText
我什么也没得到。
我尝试了
Set price = ie.Document.getElementsByTagName("p")
Dim lnk As Variant
For Each lnk In price
If lnk.className = "wholesale" Then
wks.Cells(i, "E").Value = lnk.innerText
Exit For
End If
Next
但是它会在html中获得另一个文本,而不是价格。
答案 0 :(得分:1)
为什么不首先使用id
而不是标签名称,然后像这样进行处理:price = ie.Document.getElementByid("our_price_display")
,然后再使用价格price.getAttribute("content")
,所以在一起就是:
Set price = ie.Document.getElementByid("our_price_display")
wks.Cells(i, "E").Value = price.getAttribute("content")
答案 1 :(得分:1)
获取实际文本的更好方法是使用.wholesaletext
的css类选择器
所以,
ie.document.querySelectorAll(".wholesaletext")
然后通过索引访问带有价格的文本和文本
ie.document.querySelectorAll(".wholesaletext").item(0).innerText
ie.document.querySelectorAll(".wholesaletext").item(1).innerText
CSS: