我使用以下代码从网站读取和提取数据。但是在特定网址(http://www.iamf.ir)中存在问题!
Dim HTML_Content As HTMLDocument
Dim dados As Object
'Create HTMLFile Object
Set HTML_Content = New HTMLDocument
'Get the WebPage Content to HTMLFile Object
With CreateObject("msxml2.xmlhttp")
.Open "GET", "http://www.iamf.ir", False
.send
HTML_Content.body.innerHTML = .responseText
Debug.Print .responseText ' it's OK
Debug.Print HTML_Content.body.innerHTML ' it show nothing! (problem is here)
End With
答案 0 :(得分:0)
这应该是你的问题的答案,虽然我不认为它真的解决了你的问题。
您对本网站所做的XMLHTTP请求以空体回应,您可以从行Debug.Print .responseText
注意到:
<HTML>
<HEAD>
<TITLE>امین آشنا ایرانیان</TITLE>
<META NAME="Keywords" CONTENT="">
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://www.iafi.ir">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY> <-- body is empty
</BODY>
</HTML>
这就是为什么当你打印.body.innerHTML
的{{1}}时,你会得到一个空字符串。
某些网站的构建方式只有完整的堆栈执行(即执行XMLHTTP请求时不会执行的JavaScript执行)才能正确呈现您在浏览器中看到的内容。 在您的特定情况下,您可能需要根据不可见的浏览器获取执行速度较慢但始终有效的信息。你可以看看我前段时间写过的this answer有想法。