我有数千个由纬度经度信息组成的数据。我正在尝试构建一个桌面应用程序,要求将纬度经度转换为人类可读的地址。我认为Jsoup用于这样的任务。
我预计“Belmani,Madhya Pradesh 486669,India”将通过以下代码打印在控制台中(但似乎即使发布也没有完成):
Document doc = Jsoup.connect("http://www.findlatitudeandlongitude.com/find-address-from-latitude-and-longitude")
.data("lat", "24.2")
.data("lon", "82")
.userAgent("Chrome")
.post();
System.out.println(doc.getElementById("address")); // should print html source of address returned
我试过这么多。 Jsoup怎么能完成这个任务呢?以上案例的示例代码?
答案 0 :(得分:1)
尝试通过网址参数发送数据:
Document doc = Jsoup.connect("http://www.findlatitudeandlongitude.com/find-address-from-latitude-and-longitude/?lat=24.2&lon=82").get();
System.out.println(doc.getElementById("address"));
答案 1 :(得分:1)
该网站使用GET
参数(url params)代替POST
。
您可以完全按原样使用您的示例,但将.post()
换成.get()
:
public static void main(String[] args) throws IOException {
Document doc = Jsoup.connect("http://www.findlatitudeandlongitude.com/find-address-from-latitude-and-longitude")
.data("lat", "24.2")
.data("lon", "82")
.userAgent("Chrome")
.get();
System.out.println(doc.getElementById("address"));
}
这可以避免您需要手动构建URL,正如Alexey的回答所暗示的那样。
这给了(你可以完成解析以去除不必要的信息):
<span id="address"><span class="label">Address:</span><span class="value">Belmani, Madhya Pradesh 486669, India</span></span>
答案 2 :(得分:0)
首先使用firefox海报,弄清楚如何传递参数以及使用哪种方法获取或发布,然后相应地更改代码。