如何从 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"> 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")
我目前正在尝试从网页上的 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 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")