我使用Excel VBA下載某些網站的網頁源代碼通過以下方式訪問網頁:MSXML2.XMLHTTP產生不同的結果,如果我只是在web瀏覽器
Public Function GetPage(URL As String) As String
Dim oX As New MSXML2.XMLHTTP
oX.Open "Get", URL, False
oX.Send
GetPage = oX.responseText
End Function
然而,經過仔細檢查我注意到,此代碼返回的HTML源與我通過Web瀏覽器訪問網站時返回的HTML源不同。
This is the website I'm visiting。在頁面的底部,它列出了兩個結果。現在,如果我使用GetPage函數訪問該URL,它將返回主頁面的HTML,但它不包含任何結果 - 源代碼明確指出「找到0個結果」。是什麼賦予了?它似乎沒有使用JavaScript來替換某些HTML元素,所以我不知所措。我注意到,當我自己訪問網站時,速度很慢,但是當我運行VBA HTTP請求時,它似乎幾乎是瞬間的。也許我必須等待一些東西?
有誰知道爲什麼如果我不通過VBA的HTTP請求,我找不到這些結果?
當我用你的代碼中,我得到一個錯誤頁面返回的抱怨**列「結果」不存在**不知道爲什麼的錯誤和完全相同的網址在瀏覽器的工作原理。 –
我的答案似乎已經與蒂姆的評論交叉了。它看起來像由neubus.com網站解析的糟糕的URL,因爲在URI的查詢部分之後,片段完全合法。從RFC 3986:「通用URI語法由稱爲方案,授權,路徑,查詢和 片段 分量的層次序列的」和他們給出的例子之一是'富://示例.com:8042 /上/那裏名稱=深挖#nose' – barrowc
這也有可能是'XMLHTTP'對象編碼''#字符和造成網址變得破損 – barrowc