Автопоиск кодов CAGE - PullRequest
       2

Автопоиск кодов CAGE

1 голос
/ 05 ноября 2019

Мне нужно получить атрибуты для примерно 500 кодов CAGE из DLA и записать их в мою электронную таблицу. Я начинаю с того, что пытаюсь получить его для одного элемента, а затем зацикливаю его. Я продолжаю получать сообщение об ошибке ниже и не могу понять, почему.

Обратите внимание, что код не работает, если вы ранее не открывали веб-сайт и не закрыли браузер (вам нужнопринять условия).

Ячейка 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

1 Ответ

1 голос
/ 06 ноября 2019
Set elements = HTML.getElementsByID(“detail_topsection”)

должно быть

Set element = HTML.getElementByID(“detail_topsection”)  'no "s"

Идентификаторы элементов на странице должны быть уникальными, поэтому getElementByID возвращает один элемент (или ничего), а не набор элементов, таких как getElementsByTagName

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...