分页: 1 / 2

5行的天气脚本

发表于 : 2010-07-09 9:14
tusooa
貌似ee有一个类似的。
貌似吾的短 :em04 。5行有效代码。
大家各自拿回去用吧。
新版,效率高了。

代码: 全选

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  ~
>> 
(加上Google.com.hk的语言设置,感谢10f指正)

代码: 全选

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  ~
>> 

Re: 获取Google.com.hk的天气信息

发表于 : 2010-07-09 9:24
leeaman
很好,比ee的好多啦 :em05

Re: 5行的天气脚本

发表于 : 2010-07-16 11:29
tusooa
更新了一下。

Re: 5行的天气脚本

发表于 : 2010-07-16 11:44
eexpress
use 5.010;


真先进了

Re: 5行的天气脚本

发表于 : 2010-07-16 13:10
tusooa
额,这么口口阿!
被看了111次,就3个回复。 :em06 :em06 :em06 :em06
看帖不回贴, 不道德阿。
围观不回贴的。
:em04 :em04 :em04
:em04 :em06 :em04
:em04 :em04 :em04

Re: 5行的天气脚本

发表于 : 2010-07-16 13:19
adagio

代码: 全选

Can't modify constant item in scalar assignment at /home/Scripts/tq line 6, near "`w3m -cookie -dump "http://www.google.com.hk/search?q=tq+$city" 2> /dev/null`;"
Execution of /home/Scripts/tq aborted due to compilation errors.
这个啥意思?

Re: 5行的天气脚本

发表于 : 2010-07-16 13:31
photor
:em09

Re: 5行的天气脚本

发表于 : 2010-07-16 13:32
ルルティア
我按照你的原样运行的。。为什么城市名有错误?

Re: 5行的天气脚本

发表于 : 2010-07-16 23:00
tusooa
6f:吾的没问题啊。

代码: 全选

tlcr: 0 庚寅年六月初五日 21:49:28  ~
>> wg-天气.perl
当前: 雷阵雨 南风3-4级

今天: 28 / 24°C 雷阵雨

tlcr: 0 庚寅年六月初五日 22:54:46  ~
>>
查尔perl版本:

代码: 全选

tlcr: 0 庚寅年六月初五日 22:54:46  ~
>> perl --version

This is perl, v5.10.1 (*) built for i686-linux-thread-multi

Copyright 1987-2009, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

tlcr: 0 庚寅年六月初五日 22:55:16  ~
>> 
若少于5.10,估计会出问题。

8f:说明谷不到,或者网络有问题。

Re: 5行的天气脚本

发表于 : 2010-07-17 10:49
ルルティア
大三八可能是没装w3m吧?
这个脚本如果要通用可能得改一下

代码: 全选

$_ = `w3m -cookie -dump "http://www.google.com.hk/search?q=tq+$city" 2> /dev/null`;
应该加一个语言设置的参数,变成简体
因为我的w3m没登录过google,没cookie,初次登录是显示繁体,而繁体不能查天气
这样写就好了,测试发现没问题

代码: 全选

$_ = `w3m -cookie -dump "http://www.google.com.hk/search?hl=zh-CN&q=tq+$city" 2> /dev/null`;

Re: 5行的天气脚本

发表于 : 2010-07-17 13:00
HuntXu
你用5.010就是为了用say... :em20

Re: 5行的天气脚本

发表于 : 2010-07-17 13:27
tusooa
say,少写4个字,爽啊。

Re: 5行的天气脚本

发表于 : 2010-07-17 13:30
onelynx
ルルティア 写了:大三八可能是没装w3m吧?
这个脚本如果要通用可能得改一下

代码: 全选

$_ = `w3m -cookie -dump "http://www.google.com.hk/search?q=tq+$city" 2> /dev/null`;
应该加一个语言设置的参数,变成简体
因为我的w3m没登录过google,没cookie,初次登录是显示繁体,而繁体不能查天气
这样写就好了,测试发现没问题

代码: 全选

$_ = `w3m -cookie -dump "http://www.google.com.hk/search?hl=zh-CN&q=tq+$city" 2> /dev/null`;
不错学习了

Re: 5行的天气脚本

发表于 : 2010-07-17 13:36
tusooa
38不是没装w3m,
找不到w3m,perl不会报编译错误。

代码: 全选

tlcr: 127 庚寅年六月初六日 13:30:35  ~
>> type w3m
w3m is /usr/bin/w3m
tlcr: 0 庚寅年六月初六日 13:30:54  ~
>> PATH=/bin:$HOME/应用/脚本 /usr/bin/perl -w $(which wg-天气.perl)
城市名称有误。

Re: 5行的天气脚本

发表于 : 2010-07-18 17:04
tusooa
有没有人把它放到conky里面的?
ps:216次阅读,就14次回复! :em20