我正在使用yahoo weather api获取天气信息
这是返回一个xml输出.
我想以JSON格式获取它.我怎么能得到这个JSON?
我开始使用雅虎的免费天气API来获取我需要的天气数据,但似乎每次我请求城市天气数据时,我都有机会获得更新数据或旧数据,从1到8天.
这是一个我提出请求的简单URL: 点击此处查看示例请求
YQL查询很简单,它要求纽约市的天气数据:
select * from weather.forecast where woeid in (select woeid from geo.places(1) where text="New York")
Run Code Online (Sandbox Code Playgroud)
但每次刷新该URL时,我可能会得到完全不同的结果.例如,我现在刷了几次(现在是2015年11月13日,格林威治标准时间22:45左右),这里有一些我得到的结果query.results.channel.item.condition.date
:
"date":"Fri, 13 Nov 2015 4:49 pm EST"
"date":"Thu, 12 Nov 2015 2:13 am EST"
"date":"Wed, 11 Nov 2015 1:49 am EST"
"date":"Fri, 13 Nov 2015 1:49 am EST"
Run Code Online (Sandbox Code Playgroud)
这是非常有线的,当我每次提出请求时API返回随机日期的天气数据时,我怎么能得到这样的当前天气数据呢?
我做错了什么或错过了什么吗?
笔记:
更新:
我想使用雅虎查询通过纬度和经度获取一些天气数据.但似乎这个查询现在不可用.查询如下:
select * from weather.forecast where woeid in (SELECT woeid FROM geo.placefinder WHERE text="{lat},{lon}" and gflags="R")
Run Code Online (Sandbox Code Playgroud)
这个查询是改为新的还是什么?或者它不再存在?上次我使用这种格式是大约2个月前,它运作良好.但现在它无法获取任何数据.YQL控制台的结果如下:
{
"error": {
"lang": "en-US",
"description": "Tenant 'query_yahooapis_com' access to 'Resource [tenantName=query_yahooapis_com, type=TABLE, name=geo.placefinder, locatorType=FILE, url=/home/y/share/manhattan/application/tenantBundles/yql_query_yahooapis_com_manhattan_v2/YQL-INF/restdefs/geo.placefinder.xml, useUrl=false]' is denied."
}
}
Run Code Online (Sandbox Code Playgroud)
我已经做了一些研究,包括这篇文章:如何通过位置获得雅虎的祸害?
这是真的,雅虎已经终止这个纬度经度查询获取天气?
可能重复:
我正在开发一个应用程序,它可以更新当前位置的天气.我用Google搜索并找到了如何使用Google API.但现在Google API无法使用,而我使用的是雅虎天气.
我的问题:
如何获取天气使用Yahoo Weather API
教程或源代码
谢谢高级.
我使用Google Weather API来获取天气信息,但显然谷歌已经停止了它的服务.我正在尝试切换到Yahoo Weather API.
var WOEID = 2502265; //random WOEID
$.ajax({
url: "http://weather.yahooapis.com/forecastjson?w=" + WOEID + "&u=c",
dataType: 'json',
success: function(data) {
console.log(data);
}
});
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法可以通过JavaScript获取WOEID?因为当时我可以做到
http://www.google.com/ig/api?hl=en&weather=NYC
Run Code Online (Sandbox Code Playgroud)
就是这样.
报告说,在雅虎天气API页面,
要查找您的WOEID,请从天气主页浏览或搜索您的城市.WOEID位于该城市预测页面的URL中.您还可以在主页上输入您的邮政编码来获取WOEID.
但我希望通过JavaScript获取它,而不是手动转到weather.yahoo.com并找出WOEID.
不关心跨源策略,因为我在Chrome扩展程序中使用它并且它不适用.
我正在制作一个显示多个地方天气的 JavaScript 应用程序。使用 Yahoo Weather API,我可以通过手动提供 WOEID 轻松获取多个位置的数据。但是我也想获取用户当前位置的天气。使用GeoLocation API,我可以得到用户的城市名称;然而,雅虎只使用其 WOEID(城市代码)。
任何人都可以指导我了解我应该采用哪种方法来仅使用客户端脚本获取用户的本地天气?
注意:我不希望用户输入/搜索他们的城市名称,我想在他们加载页面时直接显示它。
我想知道你是否可以通过解决这个我不知道如何修复的问题来帮助我正在教的一些高中生.这也有助于他们了解Stackoverflow的优秀资源.
我的学生正在尝试使用arduino创建一个具有实时检测功能的天气灯.python程序使用Yahoo API读取邮政编码所具有的天气状况,并每隔15分钟左右将其附加到文件中.
与此同时,我们的Arduino正在使用Processing来访问文件,将数字推入串口,arduino读取串口以打开正确的灯光以显示"天气"(晴天将打开黄色LED) .
我们的Processing和Arduino工作正常(它从文件读取并显示正确的灯光).它甚至可以在Processing和Arduino环境运行时运行,并且您手动将数字添加到文件中.通过向文件输出正确的天气,我们的Python文件也能正常工作.
问题......两个脚本无法同时运行.如果Python正在进行真实世界更新(每15分钟检查一次天气),则处理将不会触及该文件.在完成Python脚本并且我们启动Processing环境(再次)之后,将不会读取该文件.如果它不能访问文件并且灯光会随着时间的推移而改变,这就会破坏真实世界更新的目的和这个项目的重点.
在相关的说明中,我知道为Arduino使用Wifi Shield会更好,但是我们没有时间也没有资源来获取它.这是80美元,从开始到结束他们有一个星期做这个项目.
这是代码.
文件的外观
2, 3, 4, 3, 2
Run Code Online (Sandbox Code Playgroud)
2 - 晴天(打开引脚2)... 3 - 下雨(打开引脚3)......
Arduino的
void setup() {
// initialize the digital pins as an output.
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
// Turn the Serial Protocol ON
Serial.begin(9600);
}
void loop() {
byte byteRead;
/* check if data has been sent from the computer: */
if (Serial.available()) {
/* read the most recent byte */
byteRead = Serial.read();
//You have to …
Run Code Online (Sandbox Code Playgroud) 我正在尝试为 Yahoo 天气 api 查找天气状况图像的链接。我在 JSON 响应中得到条件代码,猜测图像是基于它们的。与 OpenWeatherMap 一样,您将条件代码添加到主 URL http://openweathermap.org/img/w/(conditionCode)
如何为雅虎图片做到这一点?
如何从Yahoo Weather API获得3,5或7天的预测,而不仅仅是今天和明天?
http://weather.yahooapis.com/forecastrss?w=location给出了响应,其中包含今天和明天的天气预报.
我们可以通过何种方式在响应中获得更多预测?
谢谢,
我正在使用天气地点查找器和雅虎天气 api。默认情况下,我收到 US-ENGLISH 语言的响应。我想更改韩语的回复。
请分享想法。
是否可以在网页上显示上面的雅虎天气图标?我在我的Mac上使用geektool它可以在我的桌面上显示但我想知道是否可以在webapge中有这个图标??? 有任何想法吗 :)
根据雅虎!必须提供Weather API文档,WOEID才能获取特定区域的天气信息.可以使用Yahoo!获得WOEID.GeoPlanet服务.
如果我有邮政编码,这是两个API调用以获取天气信息.
从邮政编码
获取WOEID:http://where.yahooapis.com/v1/places.q(19146)?appid = ...
使用WOEID获取天气信息:http://weather.yahooapis.com/forecastrss ?W = 12765532
但是,经过一些网页抓取后,我发现你可以通过一次API调用完成同样的事情:
http://xml.weather.yahoo.com/forecastrss?p=19146
我找不到任何关于此的文件.在生产应用中使用是否安全?
<?php
$doc = new DOMDocument();
$doc->load('http://weather.yahooapis.com/forecastrss?p=VEXX0024&u=c');
$channel = $doc->getElementsByTagName("channel");
foreach($channel as $chnl)
{
$item = $chnl->getElementsByTagName("item");
foreach($item as $itemgotten)
{
$describe = $itemgotten->getElementsByTagName("description");
$description = $describe->item(0)->nodeValue;
echo $description;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这是一个简单的脚本,它从上面的url返回标记的内容.问题是我不需要那些内容,我需要标签内的人.我需要属性代码,temp,text.我如何用我的实际代码做到这一点?谢谢
标签内容的前缀:
<yweather:condition text="Partly Cloudy" code="30" temp="30" date="Fri, 16 Jul 2010 8:30 am AST" />
Run Code Online (Sandbox Code Playgroud) javascript ×3
weather ×3
android ×2
jquery ×2
weather-api ×2
yahoo-api ×2
yql ×2
arduino ×1
geolocation ×1
html ×1
icons ×1
json ×1
php ×1
processing ×1
python ×1
yahoo ×1