我目前正在尝试从网页上的BTnClass元素中提取特定信息。
特定按钮和前面的元素详细信息是:
<div class="m-t-sm">
<button class="btnLink " id="viewClientRecord_1-00001"
type="button" data-url="/?mtoken=itg999="><span class="text">View referral summary and client record
<span class="offscreen"> for CLIENT NAME</span></span></button>
我正在尝试检索数据
data-url
为了进一步增加复杂性,有200,000个客户记录,并且Btn类的ID对于每个客户都是唯一的,因此我不能依靠ID来工作(不得不说我也尝试使用ID并失败了。 / p>
我尝试了以下选项:
独特元素
Sheets("Results").Range("A" & ClientRowNumber).Value = html.getElementById("viewClientRecord_1-00001")(0).Children(0).getAttribute("data-url")(0).innerHTML
顶级div类
Sheets("Results").Range("A" & ClientRowNumber).Value = html.getElementsByclassname("Cardf-row")(0).Children(0).getAttribute("data-url")(0).innerHTML
上一课
Sheets("Results").Range("A" & ClientRowNumber).Value = html.getElementsByclassname("m-t-sm")(0).Children(0).getAttribute("data-url")(0).innerHTML
Sheets("Results").Range("A" & ClientRowNumber).Value = html.getElementsByclassname("m-t-sm")(0).getAttribute("data-url")(0).innerHTML
Sheets("Results").Range("A" & ClientRowNumber).Value = html.getElementsByclassname("m-t-sm")(0).getAttribute("data-url").innerHTML
Sheets("Results").Range("A" & ClientRowNumber).Value = html.getElementsByclassname("btnlink ")(0).getAttribute("data-url").innerHTML
无论我尝试什么,我都无法获取getAttribute(“ data-url”)来拾取任何东西:(
编辑。更新为GetElementsByClassName
答案 0 :(得分:2)
虽然我没有检查您的行html.getElementById("viewClientRecord_1-00001")(0).Children(0)
,但我认为它是正确的,但索引号在.getElementByID()
上是非法的。
.getAttribute()
函数不会返回集合。如果这样做的话,它很可能会遵循HTMLDocument
的其余命名约定,并且会附加一个s
使其成为.getAttributes()
。这意味着您不能像使用.getAttribute("data-url")(0)
一样向其添加索引号。
此外,getAttribute()
返回一个字符串。字符串不包含.innerText
属性。您需要删除.innerText
并仅从函数getAttribute
返回结果。这将带给您最终结果:
Sheets("Results").Range("A" & ClientRowNumber).Value = _
html.getElementById("viewClientRecord_1-00001").Children(0).getAttribute("data-url")