当前位置: 首页 > news >正文

广州网站搭建哪家好公司网站报价

广州网站搭建哪家好,公司网站报价,网站推广服务商,医院英文网站建设项目需要未来40天气象,找了一圈气象api,不是收费就是不支持未来40天,干脆写了个爬虫自动爬取气象网站的数据。以前都是用Python写的,重新拾起来再用Java写别有一番风味。 目标气象网站:西安天气预报40天_西安天气预报…

项目需要未来40天气象,找了一圈气象api,不是收费就是不支持未来40天,干脆写了个爬虫自动爬取气象网站的数据。以前都是用Python写的,重新拾起来再用Java写别有一番风味。

目标气象网站:西安天气预报40天_西安天气预报40天查询,西安未来40天天气预报- 东方天气

第三方依赖:

<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.15.3</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.1.0</version>
</dependency>

代码:

package com.test.main;import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;import java.io.FileOutputStream;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;@Slf4j
public class weatherSpider {public static void main(String[] args) {List<WeatherInfo> weatherInfos = new ArrayList<>();String url = "https://tianqi.eastday.com/xian/40/"; // 目标网页URL// 获取前两天的日期LocalDate twoDaysAgo = LocalDate.now().minusDays(2);// 设置日期格式DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");try {// 设置用户代理,尝试绕过访问限制Document document = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3").timeout(10000) // 设置超时时间.get();// 查找所有class为temp的div标签Elements tempElements = document.select("div.temp");// 遍历所有找到的div标签for (Element tempElement : tempElements) {// 获取div标签内的所有span标签Elements spanElements = tempElement.select("span");// 遍历所有span标签并打印内容for (Element spanElement : spanElements) {String spanText = spanElement.text();System.out.println(spanText);String lowTemp = spanText.split("~")[0];String highTempC = spanText.split("~")[1];String highTemp = highTempC.substring(0, highTempC.length() - 1);System.out.println("日期:" + twoDaysAgo.format(formatter) + " 温度:" + lowTemp + " ~ " + highTemp);WeatherInfo weatherInfo = new WeatherInfo();weatherInfo.setDate(twoDaysAgo.format(formatter));weatherInfo.setLowTemp(lowTemp); // 示例最低气温weatherInfo.setHighTemp(highTemp); // 示例最高气温weatherInfos.add(weatherInfo);twoDaysAgo = twoDaysAgo.plusDays(1);break;}}// 写入ExcelwriteWeatherToExcel(weatherInfos, "C:\\Users\\Xylon\\Desktop\\weather_forecast.xlsx");} catch (Exception e) {throw new RuntimeException(e);}}// 将天气数据写入Excelprivate static void writeWeatherToExcel(List<WeatherInfo> weatherInfos, String filePath) throws Exception {try (Workbook workbook = new XSSFWorkbook()) {Sheet sheet = workbook.createSheet("Weather Forecast");// 创建表头Row headerRow = sheet.createRow(0);String[] headers = {"Date", "LowTemp", "HighTemp"};for (int i = 0; i < headers.length; i++) {Cell cell = headerRow.createCell(i);cell.setCellValue(headers[i]);}// 写入天气数据for (int i = 0; i < weatherInfos.size(); i++) {Row row = sheet.createRow(i + 1);WeatherInfo weatherInfo = weatherInfos.get(i);row.createCell(0).setCellValue(weatherInfo.getDate());row.createCell(1).setCellValue(weatherInfo.getLowTemp());row.createCell(2).setCellValue(weatherInfo.getHighTemp());}// 写入文件try (FileOutputStream fileOut = new FileOutputStream(filePath)) {workbook.write(fileOut);}System.out.println("Weather data has been written to " + filePath);} catch (Exception e) {e.printStackTrace();}}// 天气信息类@Setter@Getterstatic class WeatherInfo {private String date;private String lowTemp;private String highTemp;}}

http://www.dtcms.com/a/541812.html

相关文章:

  • 网站 单页做网站需要用到什么
  • 硬件与软件交互全解析:协议、控制与数据采集实践
  • 国内外网站建设2017php网站怎么做的
  • 离石古楼角网站建设合肥有哪些做网站的公司
  • 二叉树的锯齿形层序遍历
  • Java8:新日期时间
  • Java_String对象特性
  • 网站做app的软件有哪些360安全浏览器
  • 网站建设 互成网络amp 网站开发
  • 网站app免费生成软件下载免费 片
  • USB基础知识--Endpoint与pipe
  • SpringBoot拦截器实战与原理剖析
  • 把握智能语音风口:云蝠智能【声・纪元】VoiceAgent 实时语音智能论坛邀您同行
  • 一文吃透二叉树、完全平衡树、红黑树原理及C语言实现
  • 做网站用别人的图片沈阳设计公司排名
  • 浙江自己如何做网站wordpress 做后台
  • 网站 模板下载陕西富通建设有限公司网站
  • 淄博高效网站建设免费网站建站模板
  • Bootstrap4 Jumbotron详解与使用指南
  • IoT技术在产线实践中的应用
  • 合格VR大空间企业:核心要素有哪些?
  • 06.OpenStack网络管理
  • C++学习记录(23)智能指针
  • 网站内容策划方案wordpress底部版权信息修改
  • python 在class中几种函数的定义和用法
  • 电商数据中台基石:通过 API 构建淘宝商品实时数据源
  • 川崎机器人焊接电源气体省气
  • 理想汽车基于 Hologres + Flink 构建万亿级车联网信号实时分析平台
  • php教育视频网站开发如何做古诗词网站
  • 自发购卡网站在吗做手机建立网站软件