SAX读取Yahoo Service天气预报数据

AI邮件营销实战:SiteGround平台自动化与内容生成深度评测 邮件营销作为数字营销的核心渠道,其技术原理在于通过自动化工作流实现用户生命周期管理,结合数据驱动优化提升触达效率。在内容创作层面,AI辅助写作技术通过自然语言处理生成个性化邮件草稿,显著降低创作门槛。这些技术的工程价值在于为中小团队提供了低成本、高效率的营销解决方案,尤其适用于用户培育、产品推广等场景。本文以SiteGround邮件营销平台为例,深入解析其AI内容生成与可视化自动化功能如何协同工作,通过实际测试展示其如何将邮件营销从零散活动升级为持续运转的培育系统,为独立开发者和小团队提供可落地的实施路径。 阅读详情
气预报是非常有用的服务,如果能在网站上集成天气预报,能极大地方便用户查询.
    寻遍了国内所有的气象站点,没找见提供Web服务的,太小气了,只能去国外找。NOAA(www.weather.gov)提供一个Web服务,但是死活连不上服务器,估计被屏蔽了,其他提供全球天气预报的有www.weather.com和yahoo, 不过weather.com的服务太麻烦,还需要注册,相比之下,yahoo的天气服务既简单又快速,只需一个http请求,然后解析返回的XML即可获得天气预报。

以北京为例,在weather.yahoo.com查找北京的城市代码为CHXX0008,对应的URL为:

http://xml.weather.yahoo.com/forecastrss?u=c&p=CHXX0008

然后,通过SAX解析返回的XML:

URL url = new URL(" http://xml.weather.yahoo.com/forecastrss?u=c&p=CHXX0008 ");
InputStream input = url.openStream();
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
SAXParser parser = factory.newSAXParser();
parser.parse(input, new YahooHandler());

自己定义一个YahooHandler来响应SAX事件:
import org.xml.sax.Attributes;import org.xml.sax.SAXException;import javax.xml.parsers.SAXParserFactory;import javax.xml.parsers.SAXParser;import org.xml.sax.helpers.DefaultHandler;import java.net.URL;import java.io.InputStream;import java.util.Date;import java.util.Locale;import java.text.SimpleDateFormat;/*** For more information, please visit: http://www.crackj2ee.com* Author: Liao Xuefeng*/public class YahooHandler extends DefaultHandler {public void startElement(String uri, String localName, 
String qName, Attributes attributes) throws SAXException { if("yweather:condition".equals(qName)) { String s_date = attributes.getValue(3); try {Date publish =
new SimpleDateFormat("EEE, dd MMM yyyy hh:mm a z", Locale.US).parse(s_date); //System.out.println("Publish: " + publish.toString()); } catch (Exception e) { e.printStackTrace(); throw new SAXException("Cannot parse date: " + s_date); } } else if("yweather:forecast".equals(qName)) { String s_date = attributes.getValue(1); Date date = null; try { date = new SimpleDateFormat("dd MMM yyyy", Locale.US).parse(s_date); } catch (Exception e) { e.printStackTrace(); throw new SAXException("Cannot parse date: " + s_date); } int low = Integer.parseInt(attributes.getValue(2)); int high = Integer.parseInt(attributes.getValue(3)); String text = attributes.getValue(4); int code = Integer.parseInt(attributes.getValue(5));System.out.println("Weather: "+ text + ", low=" + low + ", high=" + high); } super.startElement(uri, localName, qName, attributes); } public static void main(String args[]){ try{URL url = new URL("http://xml.weather.yahoo.com/forecastrss?u=c&p=CHXX0008"); InputStream input = url.openStream(); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(false); SAXParser parser = factory.newSAXParser(); parser.parse(input, new YahooHandler()); }catch(Exception e){ System.out.println(e.toString()); } }}

运行结果:C:/java>java YahooHandler
Weather: Mostly Cloudy, low=17, high=28
Weather: AM Clouds/PM Sun, low=16, high=26

Yahoo会返回当天和第二天的Weather预报。
 
获取雅虎天气预报API 最新的通过雅虎API 获取雅虎天气预报API,通过JSON格式解析,已充分测试并能有效获取雅虎数据 立即下载

相关推荐

SAX解析器写的简单的天气预报

下载xml文件在本地,然后用SaxHandler解析器进行解析数据,然后在界面显示。。

请利用SAX编写程序解析Yahoo的XML格式的天气预报,获取天气预报——python学习笔记

1. 题目: 请利用SAX编写程序解析Yahoo的XML格式的天气预报,获取天气预报; 题目是廖雪峰老师的python教程中XML的练习。 本篇博文只是针对这一题目,没有做详细的介绍,如果看不懂可以在下面评论问我,我会及时回复的。 2. 代码如下: 首先需要提到的是,在廖雪峰老师的练习测试中所给出的url我多次尝试,甚至还用了Postman进行访问都没有成功,因此如果有同学在测试过程中一直无法成功...

我是张跑跑 1809

别再瞎猜了!Fluent瞬态计算时间步长到底设多少?一个公式+实战案例搞定

本文详细解析了Fluent瞬态计算中时间步长的设置方法,通过黄金公式和实战案例,帮助工程师准确确定时间步长,避免计算发散和资源浪费。文章还介绍了动态调整策略和典型工程场景的参数优化,提升仿真效率和精度。

weixin_42638178的博客 426

7、利用SAX编写程序解析Yahoo的XML格式的天气预报,获取天气预报

7、利用SAX编写程序解析Yahoo的XML格式的天气预报,获取天气预报 出自廖雪峰python3教程课后练习题: 首先写一下两个让我掉坑里的知识点: 一、SAX解析XML 在Python中使用SAX解析XML非常简洁,SAX是流模式,边读边解析,占用内存小,解析快,缺点是我们需要自己处理事件。 常我们关心的事件是start_el...

weixin_33866037的博客 1262

Nginx&&Keepalived(一)Keepalived介绍

一、背景: 案例1:如现有服务my-service-demo,希望实现高可用和负载均衡: 首先,my-service-demo服务部署在两台机器上,通过nginx去代理这两个节点,负载均衡就实现了。如果只有一个nginx,这台nginx机器一旦宕机,访问nginx会报错。这时候在另外一台机器nginx2上也安装nginx,并配置同样的代理,可以解决上述问题,但是暴露给用户的只有一个域名(或ip),不可能给用户提供两个域名,域名1(nginx机器1)访问不了了再让用户访问域名2(nginx机器2),这

w_t_y_y的博客 2880

使用AI编写测试用例——详细教程

现阶段AI还不能完全替代人工测试用例编写,但如果把AI当做一个提高效率的工具,它将会是一个很强大的辅助。

公众号|软件测试老吴 3万+

利用xml,解析yahoo天气代码~~~

我很菜,曾为这个天气代码搞了好几天,不过现在我终于可以实现了网站首页上每天都能够有最新的天气情况,而不用自己手动搜集,确实方便了很多,下面我就将我的经验介绍一下关于天气服务,我是用的yahoo提供的天气服务,网上搜索的时候,据说weather.com也提供这个服务,不过需要注册,我去看看了,甚至连注册的地方都没找到(汉自己的e文阿),就懒得用他们家的了yahoo的天气服务地址是http://xml

Cocowool的专栏 6341

MTK Meta ISP 工具使用技巧与参数读取路径全解析

在联发科(MediaTek, MTK)平台上进行相机图像调试时,Meta ISP 工具是连接 PC 与设备进行参数调整、寄存器读取和图像输出的重要工具。本文以实战角度出发,系统梳理 Meta ISP 的使用流程、关键模块功能、典型调试技巧与参数读取路径,结合最新版平台(如MTK Genio/Dimensity 系列)架构,帮助工程师掌握联发科图像调优的核心流程。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1147

Python中使用SAX解析XML及实例

在学习廖雪峰老师的Python教程时,学到了难以理解的关于SAX解析XML这一节。本文将从此节出发,逐句的分析此节的作业。其中作业来源于网友评论。 SAX解析XML速度快、占用内存小。我们只需要关注三个事件:start_element、end_element、char_data。如:当SAX在解析一个节点时<li><a href="/python">Python</a></li> 会产生三个事件:

诺坎普奇迹的博客 1万+

Android车载蓝牙开发全攻略:从基础到高级优化

本文系统介绍了Android车载蓝牙开发的核心技术与实践指南。文章首先阐述了蓝牙在智能汽车中的关键作用,包括免提通话、音频流媒体等应用场景。随后详细解析了蓝牙协议基础,重点介绍了HFP、A2DP等车载常用协议。开发实战部分提供了设备发现、连接、数据传输的完整代码示例,并融入多线程和内存优化技巧。通过真实车载案例,展示了启动时间、流畅度和资源使用的优化策略。最后针对面试需求,提供了专业的技术问答,涵盖蓝牙开发全流程。全文紧密结合Android车载开发职位要求,为开发者提供了一套完整的蓝牙技术解决方案。

郑伟强dev的专栏 117

RK3588 Android12 添加HDMI和喇叭声音通道切换选项

rk3588 android12系统默认接hdmi out时,声音会切换到hdmi out输出,主板声卡喇叭输出会没有声音输出。现在添加一个选项设置hdmi out时,声音可以保持主板声卡喇叭输出。

Android系统开发笔记 4163

使用SAX解析XML利用Google Weather服务制作天气预报异常解决办法

通过浏览器访问下面的链接:        http://www.google.com/ig/api?weather=nanchang 或http://www.google.com/ig/api?hl=zh-cn&weather=nanchang        http://www.google.com/ig/api?hl=en&weather=nanchang        http://w

blue_fire2008的专栏 1735

数据库系统工程师软考备战:第三篇 - SQL语言深入解析与应用

​​创建表​​​修改表​​​删除表​。

Programming Talk 122

python解析Yahoo的XML格式的天气预报,获取当天和近期几天的天气:

下面是接口xml格式数据: &lt;rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0"&gt; &lt;channel&gt; &lt;title&gt;Yahoo! Weather -..

weixin_34247299的博客 331

结合MATLAB/Simulink和多体动力学仿真软件UM(Universal Mechanism),建立高速列车轴箱轴承的动力学模型,并通过联合仿真分析其正常运行特性和典型故障模式

高速列车是现代交通运输的重要组成部分,其运行速度高、载客量大,对安全性和可靠性提出了极高的要求。轴箱轴承作为高速列车的关键部件之一,承担着传递载荷和支撑车轴的重要作用。然而,由于长期运行在高速、重载和复杂工况下,轴箱轴承容易出现疲劳磨损、润滑失效和裂纹等故障,从而影响列车的安全性。本项目旨在结合MATLAB/Simulink和多体动力学仿真软件UM(Universal Mechanism),建立高速列车轴箱轴承的动力学模型,并通过联合仿真分析其正常运行特性和典型故障模式。

xiaoheshang_123的博客 329

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Python入门】31.常用内置模块之 XML & 抓取Yahoo天气预报信息

本学习笔记基于廖雪峰的Python教程。欢迎与博主一起学习Pythonヽ( ̄▽ ̄)ノ 本节内容包括:XML的介绍;如何用SAX解析XML文本;XML文本生成;通过解析Yahoo的XML格式文本获取其天气预报信息。

三贝 613

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

使用Yahoo Service实现天气预报

天气预报是非常有用的服务,如果能在网站上集成天气预报,能极大地方便用户查询。 寻遍了国内所有的气象站点,没找见提供Web服务的,太小气了,只能去国外找。NOAA(www.weather.gov)提供一个Web服务,但是死活连不上服务器,估计被屏蔽了,其他提供全球天气预报的有www.weather.com和yahoo, 不过weather.com的服务太麻烦,还需要注册,相比之下,yahoo的天气服...

Air100的专栏 454

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

xml程序分析

请利用SAX编写程序解析Yahoo的XML格式的天气预报,获取当天和第二天的天气。 背景知识:handler是处理器。parser是解析器。parser负责读xml,handler负责处理parser读出的信息。 以下是别人的程序和自己的分析#! -*- coding:utf-8 -*- from xml.parsers.expat import ParserCreateclass Weathe

ircszwfcbvdgk234的博客 244

python笔记:常用内建模块—xml(习题)

练习 请利用SAX编写程序解析Yahoo的XML格式的天气预报,获取天气预报: https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&amp;format=xml 参数woeid是城市代码,要查询某个城市代码,可以在wea...

zyckhuntoria的博客 437

XML解析实例--------获得天气预报数据

[color=olive][size=xx-large]XML解析实例--------获得天气预报数据[/size][/color] 运行效果图: [img] [img]http://dl.iteye.com/upload/attachment/0066/5172/e6852e38-d003-3710-a23c-89f3fdb987d8.jpg[/img] [/img] 工程结构...

阿弥陀佛 865

天气预报公网查询城市的天气预报提示:查询结果为空!,这城市或区域暂时不被支持。...

如题, 见下图: IDEA中参数为城市名称, 报错.查询结果为空, 暂不支持. 参数设置为城市代码, 查询结果正常. eclipse查询, 参数设置为城市代码和城市名称都可以. 原因不明....        ...

weixin_34347651的博客 275

导航下拉菜单跳转代码(中国各省市下拉列表框)

一级下拉菜单: 请选择 破釜沉舟 imageser 二级下拉菜单: "http://www.w3.org/TR/html4/loose.dtd"> 二级下拉菜单: var where = new Array(35);  function comefrom(loca,locacity) { this.loca = loca; this.locacity 

红杉树(ecitnet)的博客 1万+

Java中字符串比较

熟悉C++的人对于两个字符串比较的代码一定很了解: (string1==string2) 但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false Java中必须使用string1.equals(string2)来进行判断 补充 如果: string s1=new String("Hello"); string s2=new String("Hello"); 则(s1==s2)=

红杉树(ecitnet)的博客 8484
上一篇: java读写xml文件的方法
下一篇: jsp连接数据库大全
wx红杉树
博客等级 码龄21年 383粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值