2015-01-10 29 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