我正在尝试使用Excel VBA在此website中创建一些自动化的网络搜索,但是要使用它,您需要同意其条款和条件。然后,该网站将您的协议存储在Cookie“ agree = True”中。
但是,在使用MSXML2.XMLHTTP
时,我无法使用setRequestHeader
设置cookie请求标头,因此它将我重定向到每个请求的使用同意页面。我知道使用here所述的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,{ {1}}和ServerXMLHTTTP
无法解析其地址。因此它返回了以下错误:
有人知道如何使用MSXML2.XMLHTTP正确设置Cookie标头,或如何在HTTPS网站上使用WinHTTP吗?