wttr.in 是一种面向控制台的天气预报服务,支持各种信息 表示方法,
例如控制台 HTTP 客户端的面向终端的 ANSI 序列 (curl、httpie 或 wget)、用于 Web 浏览器的 HTML,
或用于图形查看器的 PNG。
该服务允许您提前三天获取天气,即月相,并支持公制和英制温度显示系统。
Wego本身,以及wttr,使用WorldWeatherOnline作为天气信息的来源。
您可以从 shell 或 Web 浏览器访问该服务,如下所示:
$ curl wttr.in
Weather for City: weihai, china
\ / Clear
.-. 10 – 11 °C
― ( ) ― ↑ 11 km/h
`-’ 10 km
/ \ 0.0 mm
或在 PowerShell 中:
Invoke-RestMethod https://wttr.in
想要获取特定位置的天气信息?您可以将所需的位置添加到 URL 中的 这样的请求:
$ curl wttr.in/beijing
$ curl wttr.in/london
$ curl wttr.in/Salt+Lake+City
如果省略位置名称,则会根据您的 IP 地址获取当前位置的报告。
假设您想获取城镇或城市以外的地理位置的天气 - 也许是一个景点 在一个城市,一个山的名字,或一些特殊的地方。
在名称前添加字符以查找该特殊 检索天气之前的位置名称:~
$ curl wttr.in/~Vostok+Station
$ curl wttr.in/~Eiffel+Tower
$ curl wttr.in/~Kilimanjaro
在这些示例中,你将在天气预报输出下方看到一条线,显示地理位置 查找位置的结果:
Location: Vostok Station, станция Восток, AAT, Antarctica [-78.4642714,106.8364678]
Location: Tour Eiffel, 5, Avenue Anatole France, Gros-Caillou, 7e, Paris, Île-de-France, 75007, France [48.8582602,2.29449905432]
Location: Kilimanjaro, Northern, Tanzania [-3.4762789,37.3872648]
您还可以使用 IP 地址(直接)或域名(以 )为前缀来指定位置:@
$ curl wttr.in/@
$ curl wttr.in/@msu.ru
要在线获取详细信息,您可以访问 /:help 页面:
$ curl wttr.in/:help
支持的输出格式和视图
wttr.in 目前支持五种输出格式:
- 终端的 ANSI;
- 终端和脚本的纯文本;
- 用于浏览器的 HTML;
- PNG 用于图形查看器;
- 用于脚本和 API 的 JSON;
- 脚本和 API 的 Prometheus 指标。
ANSI 和 HTML 格式是根据 User-Agent 字符串选择的。
要强制使用禁用颜色的纯文本,请执行以下操作:
$ curl wttr.in/?T
要将输出限制为标准控制台字体(例如 Consolas 和 Lucida 控制台)中可用的字形:
$ curl wttr.in/?d
可以通过在查询末尾添加以下内容来强制使用 PNG 格式:.png
$ wget wttr.in/Paris.png
您可以像在 URL 中一样使用 PNG 格式的所有选项,但您必须 将它们分隔为代替 和 :_
?
&
$ wget wttr.in/Paris_0tqp_lang=fr.png
PNG 格式的有用选项:
t
为了提高透明度 (transparency=150
);- transparency=0..255 表示自定义透明度级别。
当使用天气 PNG 向图片添加天气数据时,透明度是一项有用的功能:
$ convert source.jpg <( curl wttr.in/Oymyakon_tqp0.png ) -geometry +50+50 -composite target.jpg
在此示例中:
source.jpg
- 源文件;target.jpg
- 目标文件;Oymyakon
- 地点名称;tqp0
- 选项(推荐)。
您可以使用 wttr-switcher 将显示当前或选定位置的天气状况的特殊 wttr.in 小部件嵌入到 HTML 页面中。
它看起来像:wttr-switcher-example
不同的输出格式
JSON 输出
JSON 格式是一种功能,通过易于解析的格式提供对 wttr.in 数据的访问,而无需用户创建复杂的脚本来重新解释 图形输出。
若要提取 JSON 格式的信息,请使用以下语法:
$ curl wttr.in/beijing?format=j1
这将以 JSON 格式获取有关北京区域的信息。j1 格式代码用于允许对 JSON 输出使用其他布局。
结果将如下所示:
{
"current_condition": [
{
"FeelsLikeC": "4",
"FeelsLikeF": "38",
"cloudcover": "0",
"humidity": "30",
"lang_zh": [
{
"value": "晴天"
}
],
"localObsDateTime": "2024-03-20 07:58 AM",
"observation_time": "11:58 PM",
"precipInches": "0.0",
"precipMM": "0.0",
"pressure": "1030",
"pressureInches": "30",
"temp_C": "4",
"temp_F": "39",
"uvIndex": "2",
"visibility": "10",
"visibilityMiles": "6",
"weatherCode": "113",
"weatherDesc": [
{
"value": "Sunny"
}
],
"weatherIconUrl": [
{
"value": ""
}
],
"winddir16Point": "N",
"winddirDegree": "360",
"windspeedKmph": "7",
"windspeedMiles": "4"
}
],
"nearest_area": [
{
"areaName": [
{
"value": "Beijing"
}
],
"country": [
{
"value": "China"
}
],
"latitude": "39.929",
"longitude": "116.388",
"population": "7480601",
"region": [
{
"value": "Beijing"
}
],
"weatherUrl": [
{
"value": ""
}
]
}
],
"request": [
{
"query": "Lat 39.91 and Lon 116.39",
"type": "LatLon"
}
],
...
这些值中的大多数都是不言自明的。