【发布时间】:2019-04-19 21:54:27
【问题描述】:
我目前正在尝试从网页上的 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 并失败了。
我尝试了以下选项:
独特的元素
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
【问题讨论】:
-
getElementById返回单个元素,而不是集合,它是getElementsByClassName,而不是getElementsByClass。 -
抱歉,我在实际代码中使用了 getelementsbyclassname:getElementsByClassName("cardrow cf")(ClientPageRecord).getElementsByClassName
-
我认为我们可以改进这一点。您访问了多少页?
标签: excel vba web-scraping excel-2016