Я новичок в очистке веб-страниц, но уже привыкаю. Мне удалось успешно получить данные с веб-страницы с помощью следующей команды:
sht.Range("b" & RowCount).Value = .document.getElementById("PriceLabel").getElementsByTagName("span")(3).innerText
sht.Range("c" & RowCount).Value = .document.getElementById("QuantityInput").Value
Моя проблема заключается в том, что не на всех веб-страницах, которые я ищу, есть эти элементы, поэтому сценарий останавливается с ошибкой времени выполнения 424 — требуется объект.
Я попробовал команду On Error GoTo, но она работает только для первого инцидента, а затем останавливается на второй веб-странице с отсутствующими элементами.
Этот код:
Next_sku:
Do
RowCount = RowCount + 1
SKU = sht.Range("a" & RowCount).Value
With ie
.Visible = False
.navigate "http://www.staples.no/search?keywords=" & SKU
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
sht.Range("b" & RowCount).Value = .document.getElementById("PriceLabel").getElementsByTagName("span")(3).innerText
sht.Range("c" & RowCount).Value = .document.getElementById("QuantityInput").Value
On Error GoTo Next_sku
End With
Loop While sht.Range("a" & RowCount + 1).Value <> ""
Может ли кто-нибудь помочь мне с кодом, который либо вернет пустой результат, либо ручной ввод, такой как f.eks «Не существует», либо просто перейдет к следующей командной строке, если элемент не существует. Самое главное, что скрипт не останавливается.
Спасибо :-)