如何从 btn 类网络抓取中提取属性详细信息

How to pull attribute details from btnclass webscraping

我目前正在尝试从网页上的 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">&nbsp;for CLIENT NAME</span></span></button>

我正在尝试检索

的数据
data-url

更复杂的是,有 200,000 条客户记录,Btn Class 的 ID 对每个客户都是唯一的,所以我不能依赖 ID 来工作(说过我也试过使用 ID 失败。

我尝试了以下选项:

唯一元素

Sheets("Results").Range("A" & ClientRowNumber).Value = html.getElementById("viewClientRecord_1-00001")(0).Children(0).getAttribute("data-url")(0).innerHTML

顶divclass

Sheets("Results").Range("A" & ClientRowNumber).Value = html.getElementsByclassname("Cardf-row")(0).Children(0).getAttribute("data-url")(0).innerHTML

前面的class

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

虽然我没有检查你的行 html.getElementById("viewClientRecord_1-00001")(0).Children(0),但我认为它是正确的,除了索引号在 .getElementByID().

上是非法的

.getAttribute() 函数不是 return 集合。如果是这样,它可能会遵循 HTMLDocument 的其余命名约定,并且会附加一个 s 使其成为 .getAttributes()。这意味着您不能像使用 .getAttribute("data-url")(0).

那样向其附加索引号

此外,getAttribute() return 是一个字符串。字符串不包含 .innerText 属性。您需要删除 .innerText,只删除 return 函数 getAttribute 的结果。这将带给您最终结果:

Sheets("Results").Range("A" & ClientRowNumber).Value = _
     html.getElementById("viewClientRecord_1-00001").Children(0).getAttribute("data-url")