5行的天气脚本
发表于 : 2010-07-09 9:14
貌似ee有一个类似的。
貌似吾的短
。5行有效代码。
大家各自拿回去用吧。
新版,效率高了。(加上Google.com.hk的语言设置,感谢10f指正)
貌似吾的短

大家各自拿回去用吧。
新版,效率高了。
代码: 全选
tlcr: 0 庚寅年六月初六日 13:25:53 ~
>> dog 应用/脚本/wg-天气.perl
#!/usr/bin/env perl
use 5.010;
$city = $ARGV[0] ? $ARGV[0] : "南京";
$_ = `w3m -cookie -dump "http://www.google.com.hk/search?hl=zh-CN&q=tq+$city" 2> /dev/null`;
die "城市名称有误。\n" if ! s/北京市专业气象台.*//s;
s/.*?天气//s;
say "当前: $1 $2\n" if /当前:([^\n]+)\n([^\n]+)/s;
say "今天: $2 $1\n" if /\s+今日\n\s+([^\n]+)\n\s+(\d+ \/ \d+°C)/s;
tlcr: 0 庚寅年六月初六日 13:26:43 ~
>>
代码: 全选
tlcr: 0 庚寅年五月廿八日 08:25:39 ~
>> dog 应用/脚本/wg-天气.perl
#!/usr/bin/env perl
use 5.010;
$city = $ARGV[0] ? $ARGV[0] : "南京";
$_ = `w3m -cookie -dump "http://www.google.com.hk/search?q=tq+$city" 2> /dev/null`;
# 去掉无用信息
s@.*?天气@@s;
die "城市名称有误。\n" if ! s@北京市专业气象台.*@@s; # 判断是否有天气信息
# 当前
say "当前天气:\n$1\n$2\n$3\n湿度:$4\n" if /(\d+ \/ \d+°C)\n当前:([^\n]+)\n([^\n]+)\n湿度:(\d+%)/s;
say "今天:\n$2\n$1" if /\s+今日\n\s+([^\n]+)\n\s+(\d+ \/ \d+°C)/s;
tlcr: 0 庚寅年五月廿八日 09:05:01 ~
>> wg-天气.perl
当前天气:
31 / 24°C
雷阵雨
东南风3-4级
湿度:87%
今天:
31 / 24°C
雷阵雨
tlcr: 0 庚寅年五月廿八日 09:05:14 ~
>>