MSXML2.ServerXMLHTTP - 无法访问网站

时间:2015-08-01 04:05:29

标签: vba xmlhttprequest

例如,kat.cr是我无法访问的为数不多的网站之一。 在回复中,我得到2个符号而不是实际的网页:

StrangeSymbol

这是我正在使用的VBA代码:

url = "https://kat.cr"
Set xmlHTTP = CreateObject("MSXML2.serverXMLHTTP")
xmlHTTP.Open "GET", url, False
xmlHTTP.setRequestHeader "Accept-Language", "en-US,en;q=0.8"
xmlHTTP.setRequestHeader "Content-Type", "text/xml"
xmlHTTP.Send

Set html = CreateObject("htmlfile")
response = xmlHTTP.responseText

网站是否真的拒绝我访问或我做错了什么?

2 个答案:

答案 0 :(得分:1)

网站不会拒绝您访问,我担心这是您的代码。以下是从您访问的页面获取所需HTML的快速示例。

注意:这只是一个快速的类型,但是可以帮助您找到正确的方向。

Dim ie As InternetExplorer
Dim html As HTMLDocument

Set ie = New InternetExplorer
ie.Visible = False
ie.navigate "https://kat.cr"

Set html = ie.document
'this is the inner html  -html.DocumentElement.innerHTML
Set ie = Nothing

编辑 - 这可能是一个更好的解决方案

Set xmlHTTP = New MSXML2.XMLHTTP
xmlHTTP.Open "GET", "https://kat.cr", False
xmlHTTP.send 

Dim doc As Object
Set doc = CreateObject("htmlfile")
doc.body.innerHTML = xmlHTTP.responseText
debug.print doc.body.innerHTML

答案 1 :(得分:1)

CreateObject("MSXML.XMLHTTP")用于客户端应用程序。 ServerXMLHttp适用于服务器应用程序。有关这两者的更多信息,请参阅this article

Set xmlHTTP = CreateObject("MSXML2.XMLHTTP")
xmlHTTP.Open "GET", "https://kat.cr", False
xmlHTTP.Send
Debug.Print xmlHTTP.responseText