我正在尝试使用以下代码对来自此网站的一系列城市进行地理编码:mygeoposition.com但似乎存在某种问题,而变量' Lat'在以下代码中始终返回空:
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 :(得分:0)
响应中不包含geodata-lat元素中的内容。似乎客户端代码正在获取该数据,因此您的响应仅查看服务器生成的html。我自己尝试了这个,这是你正在寻找的响应部分。你可以看到它是空的:
如果你尝试一个包含内容的元素(geodata-kml-button),它会输入一个值(“下载KML文件”)。忽略ByteArrayToString()调用,这只是我测试:
如果他们没有真正的API,那么我认为你不能以这种方式获取数据。