2015-01-10 59 views
0

我嘗試使用下面的代碼進行地理編碼一堆從本網站的城市數據:mygeoposition.com但似乎有某種問題,並在下面的代碼中的變量「緯度」總是返回空:使用MSXML來從網站

Sub Code() 

Dim IE As MSXML2.XMLHTTP60 
Set IE = New MSXML2.XMLHTTP60 

IE.Open "GET", "http://mygeoposition.com/?q=Chuo-ku, Osaka", False 
IE.send 

While IE.ReadyState <> 4 
    DoEvents 
Wend 

Dim HTMLDoc As MSHTML.HTMLDocument 
Dim htmlBody As MSHTML.htmlBody 

Set HTMLDoc = New MSHTML.HTMLDocument 
Set htmlBody = HTMLDoc.body 

htmlBody.innerHTML = IE.responseText 

Lat = HTMLDoc.getElementById("geodata-lat").innerHTML 

IE.abort 

End Sub 

我有一個使用瀏覽器做同樣的事情另一個代碼,它工作正常與但它得到相當緩慢。當我在MSXML中使用此代碼時,它不起作用。道歉我是使用VBA從網站提取數據的新手。請幫忙。

回答

0

該響應包含在地理數據-LAT元件沒有內容。看起來客戶端代碼正在獲取該數據,因此您的響應僅查看服務器生成的html。我自己嘗試了這一點,這是你正在尋找的反應部分。你可以看到它是空的: xmlhttp response

如果您嘗試有內容(地理數據,KML的按鈕)的元素,它在數值上拉(「下載KML文件」)。忽略ByteArrayToString()調用,這僅僅是我的測試: enter image description here

如果他們沒有一個真正的API,然後我不認爲你可以得到你的數據這種方式。

+0

感謝Crowcoder的幫助 – MIC