VBA:从 HTML 表中提取的脚本?

对基本问题表示歉意,但我只编写了大约一周的代码!

为了提供一些上下文,我有一个基本任务,我必须手动搜索并输入一个数字来检索一个人的资格和到期日期,每个人可能有多个。我设法编写了一个脚本,该脚本从我在本网站的 excel 电子表格上的资格编号列表中依次搜索每个人: https://www.bindt.org/Certification/pcn-certificate-verification/

然后,我的脚本当前单击每个资格旁边的更多信息以展开数据(坦率地说不确定是否需要这样做)。

我的问题是我不知道如何将数据提取回 excel,我还没有设法通过使用类名、抓取整个表格等来提取它。

是否可以在编写代码以获取数据方面获得一些帮助?

举个例子,如果你在你的网站上使用数字 213474,它会让你知道我需要抓住什么。

非常感谢! 汤姆

编辑 8/8/21

嗨,雷蒙德,

到目前为止我已经把我的代码放在下面,它全部落在: Set Table = IE.document.getElementByClassname("container")(1)

我确实有另一个问题,当我转到循环中的第二个人时,因为他们都有不同的资格编号,转到错误 10 似乎不起作用。

我的主要问题是无论我尝试获取结果是 tbody、tr 等,我似乎都找不到任何有效的组合。

Sub PCN()

Dim IE As Object
Dim lastrow As Integer

ThisWorkbook.Sheets("PCN").Range("A1").Select
lastrow = activeSheet.Cells.SpecialCells(xlCellTypelastCell).Row



Dim i As Integer
Dim rng As Range
Set rng = Application.Range("c2:C" & lastrow)
For i = 2 To lastrow
    Debug.Print rng.Cells(RowIndex:=i,ColumnIndex:="c").Value
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://www.bindt.org/Certification/pcn-certificate-verification/pcn-verification-form"


Do While IE.Busy
    Application.Wait DateAdd("s",1,Now)
Loop

IE.document.getElementById("txtNumber").Value = ThisWorkbook.Sheets("PCN").Range("C" & i).Value

Do While IE.Busy
    Application.Wait DateAdd("s",Now)
Loop

IE.document.getElementById("submit").Click

On Error GoTo 10

IE.document.getElementById("certificate-link-1").Click

IE.document.getElementById("certificate-link-2").Click

IE.document.getElementById("certificate-link-3").Click

IE.document.getElementById("certificate-link-4").Click

IE.document.getElementById("certificate-link-5").Click

IE.document.getElementById("certificate-link-6").Click

IE.document.getElementById("certificate-link-7").Click

IE.document.getElementById("certificate-link-8").Click

IE.document.getElementById("certificate-link-9").Click

IE.document.getElementById("certificate-link-10").Click

IE.document.getElementById("certificate-link-11").Click

IE.document.getElementById("certificate-link-12").Click

IE.document.getElementById("certificate-link-13").Click

IE.document.getElementById("certificate-link-14").Click

IE.document.getElementById("certificate-link-15").Click

IE.document.getElementById("certificate-link-16").Click

IE.document.getElementById("certificate-link-17").Click

IE.document.getElementById("certificate-link-18").Click

IE.document.getElementById("certificate-link-19").Click

IE.document.getElementById("certificate-link-20").Click

IE.document.getElementById("certificate-link-21").Click

IE.document.getElementById("certificate-link-22").Click

10


Set Table = IE.document.getElementByClassname("container")(1)

Set tbody = Table.getElementsByTagName("tbody")(0)

trs = tbody.getElementsByTagName("tr")

Do While trs Is Nothing
    DoEvents
    Application.Wait Now + TimeValue("00:00:02")
    trs = tbody.getElementsByTagName("tr")
Loop

Dim myvalue As String: myvalue = trs.Cells(3).innerText


IE.Quit

Next

End Sub
x1457007 回答:VBA:从 HTML 表中提取的脚本?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2332.html

大家都在问