从html获取属性string值
我正在构build一个macros,以使用vba从网站提取数据。 目前,我可以使用元素语法(如obj.getElementsByTagName("td").innerText
轻松地从表格内容中获取值。 但是,当某些单元格中存在非innerText数据时,我遇到了麻烦。 就像这样:
<img src="/images/amber_pending.gif" border="0" alt="Pending" title="Pending">
我尝试使用从其他人发现的语法从“title”中提取属性值:
For Each tbObj In doc.getElementsByClassName("report removeTdBorder") i = 1 For Each trObj In tbObj.getElementsByTagName("tr") If i >= 3 Then j = 1 For Each tdObj In trObj.getElementsByTagName("td") If j = 1 Then Set imgObj = tdObj.getElementsByTagName("img") dataArray(i, j) = imgObj.getAttribute("title") Debug.Print imgObj.getAttribute("title") ActiveCell.Offset(0, j) = dataArray(i, j) ActiveCell.Offset(0, j).WrapText = False Else dataArray(i, j) = tdObj.innerText Debug.Print i & ", " & j & ": " & dataArray(i, j) ActiveCell.Offset(0, j) = dataArray(i, j) ActiveCell.Offset(0, j).WrapText = False End If j = j + 1 Next tdObj ActiveCell.Offset(1, 0).Activate End If i = i + 1 Next trObj Next tbObj
但是,这段代码每次都会出错,并且在“ dataArray(i, j) = imgObj.getAttribute("title")
行处显示”运行时错误438“:对象不支持此属性或方法。 有人能帮我吗?
Set imgObj = tdObj.getElementsByTagName("img")
返回一组图像(即使只有一个图像被find),所以你可以使用(eg)来处理特定的图像:
dataArray(i, j) = imgObj(0).getAttribute("title")