Я пытаюсь создать несколько автоматических веб-поисков на этом веб-сайте с использованием Excel VBA, но для его использования необходимо согласиться с его условиями. Затем веб-сайт сохраняет ваше соглашение в файле cook ie "accept = True".
Но при использовании MSXML2.XMLHTTP
я не могу установить заголовок запроса cook ie, используя setRequestHeader
, поэтому он перенаправляет меня на страницу согласия на использование каждого запроса. Я знаю, что есть ошибка при использовании MSXML2, как указано здесь , но я не понимаю, как я могу использовать обходной путь, представленный в ссылке с Excel. (Вызов setRequestHeader
дважды не будет работать).
Вот код, который я использую:
Set objHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
Dim CAGE As String
CAGE = "3K723" 'Could be any CAGE Code, using this one as example
url = "https://cage.dla.mil/Search/Results?q=" & CAGE & "&page=1"
objHTTP.Open "GET", url, False
objHTTP.SetRequestHeader "Cookie", "agree=True"
objHTTP.send
Cells(1, 1).Value = objHTTP.ResponseText
Я знаю, что эта проблема решается просто с помощью MSXML2.ServerXMLHTTP
или WinHTTP.WinHTTPRequest.5.1
вместо MSXML2.XMLHTTP
, , но , поскольку веб-сайт использует протокол HTTPS, а не HTTP, ServerXMLHTTTP
и WinHTTP
не могут определить его адрес. Поэтому он возвращает мне следующую ошибку:
" Имя сервера не может быть разрешено."
Кто-нибудь знает, как я могу правильно установить заголовок Cook ie, используя MSXML2.XMLHTTP, или как использовать WinHTTP с веб-сайтом HTTPS?