Yeq*_*ang 5 excel vba web-scraping
我正在构建一个宏来使用vba从网站中提取数据.目前,我可以使用元素语法轻松地从表内容中获取价值obj.getElementsByTagName("td").innerText.但是,当某些单元格中存在一些非innerText数据时,我遇到了麻烦.就像这样:
<img src="/images/amber_pending.gif" border="0" alt="Pending" title="Pending">
Run Code Online (Sandbox Code Playgroud)
我尝试使用从其他人那里找到的语法从"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
Run Code Online (Sandbox Code Playgroud)
但是这个代码每次都会出错,并且在行处说"运行时错误'438':对象不支持此属性或方法" dataArray(i, j) = imgObj.getAttribute("title").有人可以帮助我吗?
Set imgObj = tdObj.getElementsByTagName("img")
Run Code Online (Sandbox Code Playgroud)
返回一组图像(即使只有一个图像可以找到),因此您可以使用(例如)来处理特定图像:
dataArray(i, j) = imgObj(0).getAttribute("title")
Run Code Online (Sandbox Code Playgroud)