excel - 自动搜索 CAGE 代码
问题描述
我需要从 DLA 检索大约 500 个 CAGE 代码的属性并将它们记录在我的电子表格中。我首先尝试为一个项目检索它,然后最终循环它。我不断收到以下错误,我不知道为什么。
请注意,除非您之前已经打开过网站并且没有关闭浏览器(您需要接受条款和条件),否则代码不起作用。
单元格 B2 = https://cage.dla.mil/Search/Results?q=07187&page=1
Sub NSCM()
Dim ie As Object
Set ie = CreateObject("INTERNETEXPLORER.APPLICATION")
'Retrieve CAGE Code
Dim CAGE As String
CAGE = Range("B2").Value
'Navigate to Cage Code general Page
ie.navigate CAGE
ie.Visible = True
While ie.Busy
DoEvents
Wend
'Follow link to details page
For Each ele In ie.document.getElementsByTagName("a")
If InStr(ele.innerText, "Details") > 0 Then ele.Click
Next
Do While ie.Busy Or _
ie.readyState <> 4
DoEvents
Loop
'Pull Data
Dim count As Long
Dim erow As Long
Set HTML = ie.document
Set elements = HTML.getElementsByID(“detail_topsection”)
count = 0
For Each element In elements
If element.className = “result” Then
enter code hereerow = Sheet1.Cells(Rows.count, 1).End(xlUp).Offset(1, 0).Row
Cells(erow, 1) = HTML.getElementsByTagName(“span”)(10).innerText
Center code hereells(erow, 1) = HTML.getElementsByTagName(“span”)(14).innerText
count = count + 1
End If
Next element
End Sub
解决方案
Set elements = HTML.getElementsByID(“detail_topsection”)
应该
Set element = HTML.getElementByID(“detail_topsection”) 'no "s"
页面上的元素 ID 应该是唯一的,因此getElementByID
返回单个元素(或不返回任何内容),而不是元素的集合,例如getElementsByTagName