Я написал скрипт в vba, используя IE, чтобы инициировать поиск по веб-странице в окне поиска, чтобы заполнить результат в соответствии с поиском, нажав кнопку поиска. Веб-страница загружается через searchbox
несколько секунд, после чего она открывается. Тем не менее, мой скрипт ниже может справиться с этим барьером и правильно выполнить поиск.
Теперь у меня есть немного другой вопрос: предположим, что я определил неправильное ID
имя или Нет таких ID
на этой веб-странице, тогда способ, которым я написал свой сценарий, будет повторяться вечно , Это, безусловно, серьезная проблема.
Как я могу изменить свой скрипт, поместив некоторую опцию timeout
в цикл так, чтобы скребок некоторое время ждал появления элемента, а если элемент не присутствует в течение этого времени, то он выйдет из цикла и выйдет браузер. Заранее спасибо.
Вот мой сценарий:
Sub GetItems()
Dim HTML As HTMLDocument, post As Object
With New InternetExplorer
.Visible = True
.navigate "https://torrentz2.eu/"
While .Busy Or .ReadyState < 4: DoEvents: Wend
Set HTML = .Document
With HTML
Do ''Wish to set timeout options within this loop to save it from infinite looping
Set post = .getElementById("thesearchbox")
DoEvents
Loop While post Is Nothing
post.innerText = "Udemy"
.getElementById("thesearchbutton").Click
End With
.Quit
End With
End Sub