Почему я внезапно получаю сообщение об ошибке при попытке отправить поиск в Google с помощью объекта MSXML2.XMLHTTP?
Я использую этот сценарий, который я скомпилировал, чтобы получить подробную информацию о документальных фильмах, которые я смотрю. На основе имени файла я получаю документальное имя, затем составляю строку поиска Google, ищу в Google, получаю ответ Google, открываю из него правильную ссылку и получаю данные. Раньше это работало еще несколько дней назад. Сегодня я попробовал запустить свой скрипт и сразу же получил ошибку при вызове функции, которая выполняет поиск в Google. Это функция:
Public Function getHTTP(ByVal url As String) As String
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", url, False
.send
getHTTP = StrConv(.responseBody, vbUnicode)
End With
End Function
"url" составляется на основе разных критериев. Прямо сейчас это:
Ошибка появляется на строке ".send". Ошибка:
Ошибка времени выполнения «-2147024891 (80070005)»: доступ запрещен.
Если я затем нажму на отладку и попытаюсь снова запустить сценарий (с текущей точки), я получу еще одну ошибку:
Ошибка времени выполнения «2147467259 (80004005)»: неопределенная ошибка.
Не думаю, что я вносил какие-либо изменения в систему с момента, когда она в последний раз работала, и до настоящего момента. Ничего не установил, никаких обновлений, ничего. Я должен упомянуть, что я на довольно старом ноутбуке, использую MSOffice 2007 под Windows 7.
Вот минимальный воспроизводимый пример. Это вызывает вышеупомянутую ошибку (ее не было пару недель назад).
Public Function getHTTP(ByVal url As String) As String
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", url, False
Debug.Print url
.send
getHTTP = StrConv(.responseBody, vbUnicode)
End With
End Function
Sub testing123()
Dim a, URL1
URL1 = "https://www.google.com/search?hl=en&source=hp&q=site:docuwiki.net+bbc+""beautiful+minds+"""
a = lcase(getHTTP(URL1))
End Sub
1 ответ
Судя по всему, проблема была вызвана тем, что вы долгое время не открывали Internet Explorer. Когда я тестировал свои URL, я делал это только в Chrome. Когда я попытался вставить тот же URL-адрес в IE и получить к нему доступ, я получил одну из этих страниц подтверждения файлов cookie. Согласившись на файлы cookie и закрыв IE, я снова протестировал скрипт, и он работал как раньше.