使用JAVA从网站页面中刮取“Elevation”的值
我正在制作一个程序,从网页上获取高程值。网页地址为- 当我们打开上面的链接时,显示的网页是- {美国地质勘探局高程点查询服务:{高程查询{x:35.227085,y:-80.843123,数据来源:3DEP 1/3弧秒,高程:-1000000,单位:米} 我无法从网页上显示的数据打印仅高程值,即-1000000。我被要求用JAVA来做这件事。请帮忙。我是编程新手 我尝试了下面的代码。而是打印网页的全部内容。我只需要高程值使用JAVA从网站页面中刮取“Elevation”的值,java,Java,我正在制作一个程序,从网页上获取高程值。网页地址为- 当我们打开上面的链接时,显示的网页是- {美国地质勘探局高程点查询服务:{高程查询{x:35.227085,y:-80.843123,数据来源:3DEP 1/3弧秒,高程:-1000000,单位:米} 我无法从网页上显示的数据打印仅高程值,即-1000000。我被要求用JAVA来做这件事。请帮忙。我是编程新手 我尝试了下面的代码。而是打印网页的全部内容。我只需要高程值 URL url; InputStream is = null;
URL url;
InputStream is = null;
BufferedReader br;
try {
url = new URL("https://nationalmap.gov/epqs/pqs.php?x=35.227085&y=-80.843124&units=Meters&output=json");
is = url.openStream(); // throws an IOException
br = new BufferedReader(new InputStreamReader(is));
// System.out.println (br.lines());
while ((line = br.readLine()) != null) {
System.out.println(line);
}
我只想要使用JAVA的提升值。此URL包含json数据,因此您需要使用任何json框架,例如Jackson
首先,您必须定义返回消息的json模型:
public static class Model {
@JsonProperty("USGS_Elevation_Point_Query_Service")
private ElevationPointQuery elevationPointQuery;
public static class ElevationPointQuery {
@JsonProperty("Elevation_Query")
private Data data;
public static class Data {
@JsonProperty
private double x;
@JsonProperty
private double y;
@JsonProperty("Data_Source")
private String dataSource;
@JsonProperty("Elevation")
private String elevation;
@JsonProperty("Units")
private String units;
}
}
}
然后您必须定义方法,该方法从给定url读取json消息并返回模型:
private static <T> T readJsonByUrl(URL url, Class<T> cls) throws IOException {
try (InputStream in = url.openStream()) {
return new ObjectMapper().readerFor(cls).readValue(in);
}
}
要使用Jackson,您必须添加以下依赖项:
compile 'com.fasterxml.jackson.core:jackson-core:2.9.8'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.8'
compile 'com.fasterxml.jackson.core:jackson-databind:2.9.8'
您是Java新手,但您试图使用Java执行web抓取?这与我的项目工作有关。我必须找到大量纬度和经度的高程值,并对这些高程值进行某种计算。我在JSON上做了大量搜索。我解决不了这个问题。我尝试将字符串行转换为字符数组,然后打印高程的特定值,但它给了我null异常错误。当我将代码放入eclipse时,可能会重复,它在ObjectMapper上显示错误。我该怎么办?你必须添加Jackson Dependencies我问了很多问题,先生,但是你能给我一个杰克逊依赖的链接吗。Baeldung提供的Jackson JSON教程-是否有任何类型的jar文件,我可以将其添加到eclipse中并运行代码。
compile 'com.fasterxml.jackson.core:jackson-core:2.9.8'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.8'
compile 'com.fasterxml.jackson.core:jackson-databind:2.9.8'