Java 如何从网站的html代码中获取特定行

Java 如何从网站的html代码中获取特定行,java,Java,我正在尝试获取用户输入的城市的纬度和经度值(java) 我发现了一个提供这项服务的网站(geonames.org) 我只想从搜索的html中提取lat和long。 例如,如果我使用url || ,坐标存储为(通过使用inspect元素): N 38°53'42“ 宽77°2'10“ (华盛顿的拉特朗) (已使用url-) 如何搜索这些特定的行,然后提取long和lat?您可以使用它们的RESTAPI而不是解析HTML。 还要注意,对于一个城市和国家,您将收到多个记录 import com.squ

我正在尝试获取用户输入的城市的纬度和经度值(java) 我发现了一个提供这项服务的网站(geonames.org) 我只想从搜索的html中提取lat和long。 例如,如果我使用url || ,坐标存储为(通过使用inspect元素): N 38°53'42“ 宽77°2'10“ (华盛顿的拉特朗) (已使用url-)
如何搜索这些特定的行,然后提取long和lat?

您可以使用它们的RESTAPI而不是解析HTML。 还要注意,对于一个城市和国家,您将收到多个记录

import com.squareup.okhttp.*;
import org.json.*;
public class GeoLookup {
public static void main(String[] args) throws Exception {
    OkHttpClient client = new OkHttpClient();

    Request request = new Request.Builder()
            .url("http://api.geonames.org/search?name_equals=San%20Jose&country=US&maxRows=10&username=demo&type=json")
            .build();
    Response response = client.newCall(request).execute();
    String responseString = response.body().string();


    JSONObject obj = new JSONObject(responseString);
    JSONArray arr = obj.getJSONArray("geonames");
    for (int i = 0; i < arr.length(); i++)
    {
        System.out.println(arr.getJSONObject(i).getString("toponymName"));
        System.out.println(arr.getJSONObject(i).getString("lat"));
        System.out.println(arr.getJSONObject(i).getString("lng"));
    }
  }
 }
import com.squareup.okhttp.*;
导入org.json.*;
公共类地理查找{
公共静态void main(字符串[]args)引发异常{
OkHttpClient=新的OkHttpClient();
Request Request=newrequest.Builder()
.url(“http://api.geonames.org/search?name_equals=San%20Jose&country=US&maxRows=10&username=demo&type=json")
.build();
Response=client.newCall(request.execute();
字符串responseString=response.body().String();
JSONObject obj=新JSONObject(responseString);
JSONArray arr=obj.getJSONArray(“地理名称”);
对于(int i=0;i
以下是您需要的依赖项:
okhttp-2.7.5.jar、okio-1.6.0.jar、org.json.jar

请回答您的问题,并为此类请求提供一个示例响应主体。还请包括您试图解析的Java代码。它有效吗?另外,你提到的网站提供了可能更容易使用的web服务访问。看看你所建议的被称为“屏幕抓取”的东西,虽然可能最终是非常脆弱的,因为他们所做的任何设计更改都会破坏你的程序。您可以使用正则表达式或者一些DOM解析来完成这项工作,但是您最好研究一下bracco23提到的web服务。