Browse Source

添加雷达图接口数据

develop
xiepufeng 7 months ago
parent
commit
c447df2f77
  1. 9
      zc-business/pom.xml
  2. 97
      zc-business/src/main/java/com/zc/business/controller/DcNmcController.java

9
zc-business/pom.xml

@ -63,7 +63,7 @@
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<!--2.poi官网指出需要poi4.x.x版本抛弃了jdk1.7之前的版本,所以适应此版本需要将jdk升级,如果不想升级还有另一种办法就是,
使用springBoot单独做一个服务为你的主项目提供一个接口,让主项目去调用生成word流让主项目去接收即可。-->
<dependency>
@ -77,6 +77,7 @@
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.3</version>
</dependency>
<!-- aliyun-java-sdk-dysmsapi -->
<dependency>
<groupId>com.aliyun</groupId>
@ -84,6 +85,12 @@
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.3</version>
</dependency>
</dependencies>
<groupId>com.zc</groupId>
<version>1.0.0</version>

97
zc-business/src/main/java/com/zc/business/controller/DcNmcController.java

@ -0,0 +1,97 @@
package com.zc.business.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.domain.AjaxResult;
import com.zc.common.core.httpclient.OkHttp;
import com.zc.common.core.httpclient.exception.HttpException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import okhttp3.Response;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
/**
* 全国气象数据
*
* @author xiepufeng
*/
@Api(tags = "全国气象数据")
@RestController
@RequestMapping("/business/nmc")
public class DcNmcController {
/**
* 雷达数据
*/
@ApiOperation("雷达数据")
@GetMapping("/radar")
public AjaxResult radar() throws HttpException, IOException {
OkHttp okHttp = new OkHttp();
Response response // 请求响应
= okHttp
.url("http://www.nmc.cn/publish/radar/chinaall.html") // 请求地址
.get(); // 请求方法
String html = response.body().string();
return AjaxResult.success(parseHtmlContent(html));
}
/**
* 解析HTML内容提取特定标签下的数据
*
* @param htmlContent 要解析的HTML字符串
* @return 返回一个JSONArray对象包含解析得到的数据项如果无法找到指定内容或解析失败则返回空数组
*/
private static JSONArray parseHtmlContent(String htmlContent) {
// 使用Jsoup解析HTML字符串
Document doc = Jsoup.parse(htmlContent, "UTF-8");
// 尝试获取指定ID的元素
Element tabContent = doc.getElementById("myTabContent");
if (tabContent == null) {
// 如果找不到指定ID的元素,直接返回空数组
return new JSONArray();
}
// 获取目标元素列表
Elements targetElements = tabContent.child(0).child(0).children();
// 如果目标元素列表为空,同样返回空数组
if (targetElements.isEmpty()) {
return new JSONArray();
}
// 初始化结果数组
JSONArray jsonArray = new JSONArray();
// 遍历目标元素列表,提取每项数据
for (Element targetElement : targetElements) {
// 提取"data-img"和"data-time"属性值
String dataImg = targetElement.attr("data-img");
String dataTime = targetElement.attr("data-time");
// 创建JSONObject,将提取到的数据项添加进去
JSONObject jsonObject = new JSONObject();
jsonObject.put("img", dataImg);
jsonObject.put("time", dataTime);
// 将JSONObject添加到结果数组
jsonArray.add(jsonObject);
}
// 返回填充好的结果数组
return jsonArray;
}
}
Loading…
Cancel
Save