ChinaUnix首页 > 精华文章 > Perl > 正文

[原创] 我的股票机


http://www.chinaunix.net 作者:xti9er  发表于:2009-06-06 11:59:40
发表评论】 【查看原文】 【Perl讨论区】【关闭

:) 

[table=95%][tr][td][font=FixedSys][color=#000000][color=#FF9900]#!/user/bin/perl -w
[/color]
[color=#FF9900]#By xti9er www.xtiger.net
[/color]
[color=#0000FF]use[/color] LWP[color=#0000CC]:[/color][color=#0000CC]:[/color]Simple[color=#0000CC];[/color]
[color=#0000FF]use[/color] Color[color=#0000CC]:[/color][color=#0000CC]:[/color]Output[color=#0000CC];[/color]
Color[color=#0000CC]:[/color][color=#0000CC]:[/color]Output[color=#0000CC]:[/color][color=#0000CC]:[/color]Init[color=#0000CC];[/color]

START[color=#0000CC]:[/color]
[color=#FF0000]system[/color][color=#0000CC]([/color][color=#FF00FF]"cls"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
`title  [color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]=[/color] M y  S t o c k  S c r e e n e r [color=#0000CC]=[/color][color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]`[/color][color=#0000CC];[/color]
cprin[color=#0000CC]([/color][color=#FF00FF]"\tM y  S t o c k  S c r e e n e r\n\n"[/color][color=#0000CC],[/color]7[color=#0000CC])[/color][color=#0000CC];[/color]

cprin[color=#0000CC]([/color][color=#FF00FF]"_"[/color]x50[color=#0000CC],[/color]13[color=#0000CC])[/color][color=#0000CC];[/color]

[color=#0000FF]$[/color][color=#0000CC]|[/color][color=#0000CC]=[/color]1[color=#0000CC];[/color]

[color=#0000FF]if[/color][color=#0000CC]([/color][color=#0000FF]my[/color] [color=#0000FF]$[/color][color=#008080]googled[/color][color=#0000CC]=[/color]get[color=#0000CC]([/color][color=#FF00FF]"http://www.google.cn/finance/info?q=id-690158,id-684321,id-684268,id-697176,id-702734,id-684353,id-709933,id-706853,id-690427,id-697980&infotype=infoquoteall&hl=zh-CN&gl=cn"[/color][color=#0000CC])[/color][color=#0000CC])[/color]
[color=#0000CC]{[/color]
    [color=#0000FF]my[/color] [color=#0000FF]@[/color][color=#808000]info[/color][color=#0000CC]=[/color][color=#FF0000]split[/color][color=#0000CC]([/color][color=#0000CC]/[/color][color=#0000CC]\[/color][color=#0000CC],[/color][color=#0000CC]/[/color][color=#0000CC],[/color][color=#0000FF]$[/color][color=#008080]googled[/color][color=#0000CC])[/color][color=#0000CC];[/color]
    [color=#FF0000]print[/color] [color=#FF00FF]"\n股票码\t开盘价\t最高价\t最低价\t涨跌\t名称\n"[/color][color=#0000CC];[/color]
    [color=#0000FF]for[/color] [color=#0000FF]my[/color] [color=#0000FF]$[/color][color=#008080]newinfo[/color][color=#0000CC]([/color][color=#0000FF]@[/color][color=#808000]info[/color][color=#0000CC])[/color]
    [color=#0000CC]{[/color]
        [color=#0000FF]if[/color] [color=#0000CC]([/color][color=#0000FF]$[/color][color=#008080]newinfo[/color][color=#0000CC]=[/color][color=#0000CC]~[/color][color=#0000CC]/[/color][color=#0000CC]\[/color][color=#FF00FF]"(.*)\"\s\:\s\"(.*)\"/)
        {
            my $infot=$1;
            my $infoc=$2;
            next if $infot=~/avvo|ccol|l_cur|lt|fwpe|beta|lo52|hi52/;
            if($infot eq "[/color]t[color=#FF00FF]"){$t=$infoc}
            if($infot eq "[/color]op[color=#FF00FF]"){$op=$infoc}
            if($infot eq "[/color]hi[color=#FF00FF]"){$hi=$infoc}
            if($infot eq "[/color]lo[color=#FF00FF]"){$lo=$infoc}
            if($infot eq "[/color]cp[color=#FF00FF]"){$cp=$infoc}
            if($infot eq "[/color]lname[color=#FF00FF]"){$lname=$infoc}            
            if ($infot eq "[/color]type[color=#FF00FF]")
            {
                print "[/color][color=#0000FF]$[/color][color=#008080]t[/color][color=#008080]\[/color]t[color=#FF00FF]";
                print "[/color][color=#0000FF]$[/color][color=#008080]op[/color][color=#008080]\[/color]t[color=#FF00FF]";
                cprin("[/color][color=#0000FF]$[/color][color=#008080]hi[/color][color=#008080]\[/color]t[color=#FF00FF]",($hi-$op)>0?5:7);
                cprin("[/color][color=#0000FF]$[/color][color=#008080]lo[/color][color=#008080]\[/color]t[color=#FF00FF]",($lo-$op)>0?5:7);
                cprin("[/color][color=#0000FF]$[/color][color=#008080]cp[/color][color=#008080]\[/color]t[color=#FF00FF]",$cp>0?5:7);
                print "[/color][color=#0000FF]$[/color][color=#008080]lname[/color][color=#008080]\[/color]n[color=#FF00FF]";
                print "[/color][color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]-[/color][color=#0000CC]\[/color]n[color=#FF00FF]";
            }            
        }
    }
}
else
{
    cprin("[/color][color=#FF00FF]\[/color]n[color=#0000CC][[/color][color=#0000CC]![/color][color=#0000CC]][/color] GetInfo Fail\n[color=#FF00FF]",5);
}

sleep 10;
goto START;
print "[/color][color=#FF00FF]\[/color]n[color=#FF00FF]","[/color][color=#0000CC]+[/color][color=#FF00FF]"x50,"[/color][color=#FF00FF]\[/color]n[color=#FF00FF]";

sub cprin
{
    ($str,$i)=@_;
    cprint("[/color][color=#FF00FF]\[/color]x03[color=#FF00FF]" . $i . "[/color] [color=#0000FF]$[/color][color=#008080]str[/color][color=#008080]\[/color]x030");}[/color][/font][/td][/tr][/table]

      看起来有点山寨,不过挺方便。 符合我等 “不求最好,但求追省事”的懒人哲学,呵呵。祝福大家股票支支涨停!

    [attach]330938[/attach]

[ 本帖最后由 xti9er 于 2009-5-13 15:44 编辑 ]








 shaneqi 回复于:2009-05-13 13:49:20

哈哈,楼主活学活用,我也拷下来看看。


 glibma 回复于:2009-05-13 14:43:31

请问楼主,为什么我这里显示get info failed呢,换了个网页也打不开。


 xti9er 回复于:2009-05-13 15:48:24

可能又是被 转义掉了。

你再试下看看。我改了一下。


 Perl_Er 回复于:2009-05-13 18:43:38

很牛


 phiazat 回复于:2009-05-14 08:23:51

nice:)


 gsging 回复于:2009-05-14 09:13:13

楼主的Color::Output用的屡试不爽啊.:mrgreen:


 暗底 回复于:2009-05-14 09:37:48

Color::Output::Init;
这个怎么加进去啊 我这里没有啊


 xti9er 回复于:2009-05-14 11:02:06

那不是模块阿


 暗底 回复于:2009-05-14 11:20:40

Can't locate Color/Output.pm in @INC (@INC contains: D:/Perl/site/lib D:/Perl/li
b .) at gupiao line 6.
BEGIN failed--compilation aborted at gupiao line 6.

我编译之后报上面的错, 是缺少什么啊? 
PS: 新手


 MMMIX 回复于:2009-05-14 11:25:00

引用:原帖由 暗底 于 2009-5-14 11:20 发表 [url=http://bbs3.chinaunix.net/redirect.php?goto=findpost&pid=10547900&ptid=1453011]
Can't locate Color/Output.pm in @INC (@INC contains: D:/Perl/site/lib D:/Perl/li
b .) at gupiao line 6.
BEGIN failed--compilation aborted at gupiao line 6.

我编译之后报上面的错, 是缺少什么啊 ... 


缺少模块 Color::Output


 暗底 回复于:2009-05-14 12:25:01

多谢 多谢 编译通了....


 暗底 回复于:2009-05-14 12:41:37

楼主能讲讲 当你在google里搜索出来的东西如何分析啊? 或者是搜索出来的信息存在哪了?


 shaneqi 回复于:2009-05-14 13:13:14

我在公司用楼主的程序取不到页面内容,是不是还需要有一些其它的设置?


 hfahe 回复于:2009-05-14 13:14:04

引用:原帖由 暗底 于 2009-5-14 12:41 发表 [url=http://bbs3.chinaunix.net/redirect.php?goto=findpost&pid=10548569&ptid=1453011]
楼主能讲讲 当你在google里搜索出来的东西如何分析啊? 或者是搜索出来的信息存在哪了? 


变量$googled
数组@info


 hfahe 回复于:2009-05-14 13:15:00

引用:原帖由 shaneqi 于 2009-5-14 13:13 发表 [url=http://bbs3.chinaunix.net/redirect.php?goto=findpost&pid=10548732&ptid=1453011]
我在公司用楼主的程序取不到页面内容,是不是还需要有一些其它的设置? 


看看浏览器能打开http://www.google.cn/finance/info?q=id-690158,id-684321,id-684268,id-697176,id-702734,id-684353,id-709933,id-706853,id-690427,id-697980&infotype=infoquoteall&hl=zh-CN&gl=cn不
不行就是你公司网络问题了


 shaneqi 回复于:2009-05-14 13:16:50

这个用IE打开没问题,但是放到程序里面就不行了。


 hfahe 回复于:2009-05-14 13:23:10

引用:原帖由 shaneqi 于 2009-5-14 13:16 发表 [url=http://bbs3.chinaunix.net/redirect.php?goto=findpost&pid=10548754&ptid=1453011]
这个用IE打开没问题,但是放到程序里面就不行了。 


什么问题?没有信息?


 shaneqi 回复于:2009-05-14 13:29:50

恩,就是取不到值。用楼主这个程序就是显示failed。

我写了个简单的
#!c:\perl\bin
use LWP::Simple;
my $url='http://www.cpan.org/RECENT';
my $index = get( "$url" ) || die "get the page failed!\n"

也是不行。


 xti9er 回复于:2009-05-14 15:28:55

C:\>perl -MLWP::Simple -e "getprint('http://mirror.163.com/') or die $!"
<html><title>Invalid Browser</title><body></body></html>
C:\>perl -MLWP::Simple -e "getprint('http://mirror.163ss.com/') or die $!"
500 Can't connect to mirror.163ss.com:80 (Bad hostname 'mirror.163ss.com') <URL:
http://mirror.163ss.com/>
---------------------------------
你把die后面的信息改为$! 看输出什么结果。


 shaneqi 回复于:2009-05-14 15:42:29

尝试了一下返回unknown error at line 7


 DQP 回复于:2009-05-14 15:47:38

引用:原帖由 shaneqi 于 2009-5-14 13:16 发表 [url=http://bbs3.chinaunix.net/redirect.php?goto=findpost&pid=10548754&ptid=1453011]
这个用IE打开没问题,但是放到程序里面就不行了。 



没设代理吧


 shaneqi 回复于:2009-05-14 17:20:35

你的意思是我的脚本里面要添加什么参数么?


 huifeideluotuo 回复于:2009-05-14 17:52:52

我这里提示:
Can't exec "cls": No such file or directory at ./gu_piao.pl line 9.
Can't exec "title": No such file or directory at ./gu_piao.pl line 11.

其他的都没有问题,楼主真够英明:mrgreen:


 DQP 回复于:2009-05-14 18:04:55

引用:原帖由 shaneqi 于 2009-5-14 17:20 发表 [url=http://bbs3.chinaunix.net/redirect.php?goto=findpost&pid=10550666&ptid=1453011]
你的意思是我的脚本里面要添加什么参数么? 



http://search.cpan.org/~gaas/libwww-perl-5.826/lib/LWP.pm

有个proxy参数


 freebarque 回复于:2009-05-15 18:10:51

弄成可配, 程序去读个.ini的配置文件

配置文件里可配网址, 下次再被转义掉, 可避免改程序
股票代码也弄成可配.


 keelort 回复于:2009-05-17 14:12:07

啥时候弄个带K线的


 rossini23 回复于:2009-05-30 22:37:26

这个搜索“http://www.google.cn/finance/info?q=id-690158,id-684321,id-684268,id-697176,id-702734,id-684353,id-709933,id-706853,id-690427,id-697980&infotype=infoquoteall&hl=zh-CN&gl=cn”
怎么用的?


 phiazat 回复于:2009-05-31 23:19:07

是啊,怎么改一下股票代码啊,楼主提示一下,感激:em03:


 xti9er 回复于:2009-06-01 12:54:08

引用:原帖由 phiazat 于 2009-5-31 23:19 发表 [url=http://bbs3.chinaunix.net/redirect.php?goto=findpost&pid=10631719&ptid=1453011]
是啊,怎么改一下股票代码啊,楼主提示一下,感激:em03: 




修改后的代码在这里,有你需要的功能。

http://bbs3.chinaunix.net/thread-1455961-1-3.html


 lyc654321 回复于:2009-06-05 09:39:45

[table=95%][tr][td][font=FixedSys][color=#000000][color=#ff9900]#!/usr/bin/perl -w
[/color]

[color=#ff9900]#By xti9er [url=www.xtiger.net]www.xtiger.net
[/color]

[color=#0000ff]use[/color] LWP[color=#0000cc]:[/color][color=#0000cc]:[/color]Simple[color=#0000cc];[/color]
[color=#0000ff]use[/color] LWP[color=#0000cc]:[/color][color=#0000cc]:[/color]UserAgent[color=#0000cc];[/color]
[color=#0000ff]use[/color] Color[color=#0000cc]:[/color][color=#0000cc]:[/color]Output[color=#0000cc];[/color]
Color[color=#0000cc]:[/color][color=#0000cc]:[/color]Output[color=#0000cc]:[/color][color=#0000cc]:[/color]Init[color=#0000cc];[/color]

[color=#0000ff]$[/color][color=#0000cc]|[/color][color=#0000cc]=[/color]1[color=#0000cc];[/color]
[color=#0000ff]my[/color] [color=#0000ff]$[/color][color=#008080]fst[/color][color=#0000cc]=[/color]0[color=#0000cc];[/color]
[color=#0000ff]my[/color] [color=#0000ff]$[/color][color=#008080]stimeout[/color][color=#0000cc];[/color]
[color=#0000ff]my[/color] [color=#0000ff]$[/color][color=#008080]googleq[/color][color=#0000cc]=[/color][color=#ff00ff]""[/color][color=#0000cc];[/color]
[color=#0000ff]my[/color] [color=#0000ff]$[/color][color=#008080]nowsc[/color][color=#0000cc]=[/color]0[color=#0000cc];[/color]
[color=#ff9900]#my (@scode,@sc,@spr);
[/color]
[color=#ff9900]#my (@scode,@sc,@spr);
[/color]
[color=#ff9900]#$scode="0";
[/color]
[color=#0000ff]my[/color] [color=#0000ff]%[/color][color=#800000]sc[/color][color=#0000cc]=[/color][color=#0000cc]([/color][color=#ff00ff]""[/color][color=#0000cc],[/color][color=#ff00ff]""[/color][color=#0000cc])[/color][color=#0000cc];[/color]
[color=#0000ff]my[/color] [color=#0000ff]%[/color][color=#800000]spr[/color][color=#0000cc]=[/color][color=#0000cc]([/color][color=#ff00ff]""[/color][color=#0000cc],[/color][color=#ff00ff]""[/color][color=#0000cc])[/color][color=#0000cc];[/color]

[color=#ff0000]system[/color][color=#0000cc]([/color][color=#ff00ff]"clear"[/color][color=#0000cc])[/color][color=#0000cc];[/color]
[color=#ff9900]#`title  --= M y  S t o c k  S c r e e n e r =--`;
[/color]

    [color=#0000ff]my[/color] [color=#0000ff]$[/color][color=#008080]ua[/color] [color=#0000cc]=[/color] LWP[color=#0000cc]:[/color][color=#0000cc]:[/color]UserAgent[color=#0000cc]-[/color][color=#0000cc]>[/color]new[color=#0000cc];[/color]
    [color=#ff9900]#$ua->proxy('http', 'http://172.21.148.5:25880');
[/color]
    [color=#ff9900]#$ua->max_size( 8192 );
[/color]
    [color=#0000ff]$[/color][color=#008080]ua[/color][color=#0000cc]-[/color][color=#0000cc]>[/color]env_proxy[color=#0000cc];[/color]

[color=#0000ff]if[/color][color=#0000cc]([/color][color=#0000ff]$[/color][color=#008080]fst[/color][color=#0000cc]=[/color][color=#0000cc]=[/color]0[color=#0000cc])[/color]
[color=#0000cc]{[/color]
    cprin[color=#0000cc]([/color][color=#ff00ff]"\n程序开始初始化"[/color][color=#0000cc],[/color]13[color=#0000cc])[/color][color=#0000cc];[/color]
    [color=#0000ff]my[/color] [color=#0000ff]@[/color][color=#808000]gettime[/color][color=#0000cc]=[/color][color=#ff0000]localtime[/color][color=#0000cc]([/color][color=#0000cc])[/color][color=#0000cc];[/color]
    [color=#0000ff]if[/color][color=#0000cc]([/color][color=#0000ff]$[/color][color=#008080]gettime[/color][color=#0000cc][[/color]2[color=#0000cc]][/color][color=#0000cc]>[/color]15 [color=#0000ff]or[/color] [color=#0000ff]$[/color][color=#008080]gettime[/color][color=#0000cc][[/color]2[color=#0000cc]][/color][color=#0000cc]<[/color]9[color=#0000cc])[/color][color=#0000cc]{[/color][color=#0000ff]$[/color][color=#008080]stimeout[/color][color=#0000cc]=[/color]1[color=#0000cc]}[/color]
    [color=#0000ff]else[/color][color=#0000cc]{[/color][color=#0000ff]$[/color][color=#008080]stimeout[/color][color=#0000cc]=[/color]0[color=#0000cc]}[/color]

    [color=#ff0000]open[/color][color=#0000cc]([/color]ST[color=#0000cc],[/color][color=#ff00ff]"st.ini"[/color][color=#0000cc])[/color] [color=#0000ff]or[/color] [color=#ff0000]die[/color] [color=#0000ff]$[/color][color=#0000cc]![/color][color=#0000cc];[/color]
    [color=#0000ff]while[/color][color=#0000cc]([/color][color=#0000ff]my[/color] [color=#0000ff]$[/color][color=#008080]info[/color][color=#0000cc]=[/color][color=#0000cc]<[/color]ST[color=#0000cc]>[/color][color=#0000cc])[/color]
    [color=#0000cc]{[/color]
        [color=#ff0000]chomp[/color][color=#0000cc]([/color][color=#0000ff]$[/color][color=#008080]info[/color][color=#0000cc])[/color][color=#0000cc];[/color]
        [color=#0000ff]next[/color] [color=#0000ff]if[/color] [color=#0000ff]$[/color][color=#008080]info[/color][color=#0000cc]=[/color][color=#0000cc]~[/color][color=#0000cc]/[/color][color=#0000cc]^[/color][color=#ff9900]#/;
[/color]

        [color=#0000cc]([/color][color=#0000ff]$[/color][color=#008080]scode_t[/color][color=#0000cc],[/color][color=#0000ff]$[/color][color=#008080]spr_t[/color][color=#0000cc],[/color][color=#0000ff]$[/color][color=#008080]sc_t[/color][color=#0000cc])[/color][color=#0000cc]=[/color][color=#ff0000]split[/color][color=#0000cc]([/color][color=#0000cc]/[/color][color=#0000cc]=[/color][color=#0000cc]/[/color][color=#0000cc],[/color][color=#0000ff]$[/color][color=#008080]info[/color][color=#0000cc])[/color][color=#0000cc];[/color]
        [color=#0000ff]if[/color] [color=#0000cc]([/color][color=#0000ff]$[/color][color=#008080]scode_t[/color] [color=#0000ff]eq[/color] [color=#ff00ff]""[/color] [color=#0000ff]or[/color] [color=#0000ff]$[/color][color=#008080]spr_t[/color] [color=#0000ff]eq[/color] [color=#ff00ff]""[/color] [color=#0000ff]or[/color] [color=#0000ff]$[/color][color=#008080]sc_t[/color] [color=#0000ff]eq[/color] [color=#ff00ff]""[/color][color=#0000cc])[/color] [color=#0000cc]{[/color][color=#ff0000]die[/color] [color=#ff00ff]"\n请正确填写需要查看的股票在st.ini中,格式 股票代码=持有价格=持有量\n"[/color][color=#0000cc]}[/color]
        [color=#0000ff]$[/color][color=#008080]sc[/color][color=#0000cc]{[/color][color=#0000ff]$[/color][color=#008080]scode_t[/color][color=#0000cc]}[/color][color=#0000cc]=[/color][color=#0000ff]$[/color][color=#008080]sc_t[/color][color=#0000cc];[/color]
        [color=#0000ff]$[/color][color=#008080]spr[/color][color=#0000cc]{[/color][color=#0000ff]$[/color][color=#008080]scode_t[/color][color=#0000cc]}[/color][color=#0000cc]=[/color][color=#0000ff]$[/color][color=#008080]spr_t[/color][color=#0000cc];[/color]
        [color=#0000ff]$[/color][color=#008080]googleq[/color][color=#0000cc]=[/color][color=#0000ff]$[/color][color=#008080]scode_t[/color][color=#0000cc].[/color][color=#ff00ff]",$googleq"[/color][color=#0000cc];[/color]
        [color=#ff9900]#print "$googleq\n";
[/color]
    [color=#0000cc]}[/color]
    [color=#0000ff]$[/color][color=#008080]allst[/color][color=#0000cc]=[/color][color=#ff0000]scalar[/color][color=#0000cc]([/color][color=#0000ff]@[/color][color=#808000]scode[/color][color=#0000cc])[/color][color=#0000cc];[/color]
    [color=#0000ff]$[/color][color=#008080]fst[/color][color=#0000cc]=[/color]1[color=#0000cc];[/color]
    [color=#0000ff]if[/color][color=#0000cc]([/color][color=#0000ff]$[/color][color=#008080]googleq[/color] [color=#0000ff]eq[/color] [color=#ff00ff]""[/color][color=#0000cc])[/color] [color=#0000cc]{[/color][color=#ff0000]die[/color] [color=#ff00ff]"\n请正确填写需要查看的股票在st.ini中,格式 股票代码=持有价格=持有量\n"[/color][color=#0000cc]}[/color]

[color=#ff9900]#for(@scode)
[/color]
[color=#ff9900]#{
[/color]
[color=#ff9900]#    if(my $nowcode=getcode($_))
[/color]
[color=#ff9900]#    {
[/color]
[color=#ff9900]#        $googleq=$googleq."id-$nowcode,";
[/color]
[color=#ff9900]#        print ".";
[/color]
[color=#ff9900]#    }
[/color]
[color=#ff9900]#    else{next;}
[/color]
[color=#ff9900]#}
[/color]
    [color=#ff9900]#print "$googleq\n";
[/color]

[color=#0000cc]}[/color]

[color=#0000ff]sub[/color] getcode
[color=#0000cc]{[/color]
    [color=#0000ff]my[/color] [color=#0000ff]$[/color][color=#008080]newst[/color][color=#0000cc]=[/color][color=#ff0000]shift[/color][color=#0000cc];[/color]
    [color=#0000ff]my[/color] [color=#0000ff]$[/color][color=#008080]nowcode[/color][color=#0000cc]=[/color][color=#0000ff]$[/color][color=#008080]ua[/color][color=#0000cc]-[/color][color=#0000cc]>[/color]get[color=#0000cc]([/color][color=#ff00ff]"http://www.google.cn/finance?q=$newst"[/color][color=#0000cc])[/color][color=#0000cc];[/color]
    [color=#0000ff]$[/color][color=#008080]nowcode[/color][color=#0000cc]=[/color][color=#0000ff]$[/color][color=#008080]nowcode[/color][color=#0000cc]-[/color][color=#0000cc]>[/color]as_string[color=#0000cc];[/color]
    [color=#0000ff]if[/color][color=#0000cc]([/color][color=#0000ff]$[/color][color=#008080]nowcode[/color][color=#0000cc]=[/color][color=#0000cc]~[/color][color=#0000cc]/[/color][color=#0000cc]<[/color]span\sclass[color=#0000cc]=[/color][color=#0000cc]\[/color][color=#ff00ff]"pr\"\sid=\"ref_(\d+)_l\"\>/)
    {
        return $1;
    }
    else
    {
        return 0;    
    }    
}

START:
my $googled;
if($googled=$ua->get("[/color]http[color=#0000cc]:[/color][color=#0000cc]/[/color][color=#0000cc]/[/color]www[color=#0000cc].[/color]google[color=#0000cc].[/color]cn[color=#0000cc]/[/color]finance[color=#0000cc]/[/color]info[color=#0000cc]?[/color][color=#0000ff]q[/color][color=#0000cc]=[/color][color=#0000ff]$[/color][color=#008080]googleq[/color][color=#0000cc]&[/color]infotype[color=#0000cc]=[/color]infoquoteall[color=#0000cc]&[/color]hl[color=#0000cc]=[/color]zh[color=#0000cc]-[/color]CN[color=#0000cc]&[/color]gl[color=#0000cc]=[/color]cn[color=#ff00ff]") and $googled->is_success)
{
        system("[/color]clear[color=#ff00ff]");
cprin("[/color][color=#ff00ff]\[/color]tM y  S t o c k  S c r e e n e r\n\n[color=#ff00ff]",7);
cprin("[/color]_[color=#ff00ff]"x60,13);
        print "[/color][color=#ff00ff]\[/color]n当前时间:[color=#ff00ff]".scalar(localtime())."[/color][color=#ff00ff]\[/color]n[color=#ff00ff]";
            print "[/color][color=#ff00ff]\[/color]n股票码\t开盘价\t成本价\t持有量\t[color=#ff00ff]",$stimeout=0?"[/color]当前价\t[color=#ff00ff]":"[/color]收盘价\t[color=#ff00ff]","[/color]涨跌\t盈亏\t名称\n[color=#ff00ff]";
    my @info=split(/\,/,$googled->as_string);
    #my @info=split(/\}\s,\{/,$for_tt);
    for my $newinfo(@info)
    {
        #print "[/color][color=#0000ff]$[/color][color=#008080]newinfo[/color][color=#008080]\[/color]n[color=#ff00ff]";
        #$nowsc=0 if $nowsc>$allst-1;    
        my @info1=split(/,/,$newinfo);
      for my $newinfo1(@info1)
      {
        if ($newinfo1=~/\"(.*)\"\s*\:\s*\"(.*)\"/)
        {
            #print "[/color][color=#0000ff]$[/color][color=#008080]newinfo[/color][color=#0000cc]+[/color][color=#0000cc]+[/color][color=#0000cc]+[/color][color=#0000cc]\[/color]n[color=#ff00ff]";    
            my $infot=$1;
            my $infoc=$2;
            #print "[/color]1[color=#0000cc]=[/color][color=#0000cc]=[/color][color=#0000ff]$[/color][color=#008080]infot[/color][color=#0000cc],[/color]2[color=#0000cc]=[/color][color=#0000cc]=[/color][color=#0000ff]$[/color][color=#008080]infoc[/color][color=#008080]\[/color]n[color=#ff00ff]";
            next if $infot=~/avvo|ccol|l_cur|lt|fwpe|beta|lo52|hi52/;
            if($infot eq "[/color]t[color=#ff00ff]"){$t=$infoc}
            if($infot eq "[/color]op[color=#ff00ff]"){$op=$infoc}
            #if($infot eq "[/color]hi[color=#ff00ff]"){$hi=$infoc}
            #if($infot eq "[/color]lo[color=#ff00ff]"){$lo=$infoc}
            if($infot eq "[/color]l[color=#ff00ff]"){$l=$infoc}
            if($infot eq "[/color]c[color=#ff00ff]"){$c=$infoc}
            if($infot eq "[/color]cp[color=#ff00ff]"){$cp=$infoc}
            if($infot eq "[/color]lname[color=#ff00ff]"){$lname=$infoc}    
            if($infot eq "[/color]id[color=#ff00ff]"){$cursc=$infoc}    
            
            if ($infot eq "[/color]type[color=#ff00ff]")
            {            
                print "[/color][color=#0000ff]$[/color][color=#008080]t[/color][color=#008080]\[/color]t[color=#ff00ff]";
                print "[/color][color=#0000ff]$[/color][color=#008080]op[/color][color=#008080]\[/color]t[color=#ff00ff]";
                #cprin("[/color][color=#0000ff]$[/color][color=#008080]hi[/color][color=#008080]\[/color]t[color=#ff00ff]",($hi-$op)>0?5:7);
                #cprin("[/color][color=#0000ff]$[/color][color=#008080]lo[/color][color=#008080]\[/color]t[color=#ff00ff]",($lo-$op)>0?5:7);
                #cprin("[/color][color=#0000ff]$[/color][color=#008080]l[/color][color=#008080]\[/color]t[color=#ff00ff]",($l-$op)>0?5:7);
                #my $gl=int($sc[$nowsc] * ($l-$spr[$nowsc]));
                #cprin("[/color][color=#0000ff]$[/color][color=#008080]gl[/color][color=#008080]\[/color]t[color=#ff00ff]",$gl>0?5:7);
                print("[/color][color=#0000ff]$[/color][color=#008080]spr[/color][color=#0000cc]{[/color][color=#0000ff]$[/color][color=#008080]t[/color][color=#0000cc]}[/color][color=#0000cc]\[/color]t[color=#ff00ff]");
                print("[/color][color=#0000ff]$[/color][color=#008080]sc[/color][color=#0000cc]{[/color][color=#0000ff]$[/color][color=#008080]t[/color][color=#0000cc]}[/color][color=#0000cc]\[/color]t[color=#ff00ff]");
                print("[/color][color=#0000ff]$[/color][color=#008080]l[/color][color=#008080]\[/color]t[color=#ff00ff]");
                cprin("[/color][color=#0000ff]$[/color][color=#008080]c[/color][color=#008080]\[/color]t[color=#ff00ff]",$c>0?5:7);
                cprin(($l-$spr{$t})*$sc{$t}-($l*$sc{$t}/1000)."[/color][color=#ff00ff]\[/color]t[color=#ff00ff]",($l-$spr{$t})*$sc{$t}-($l*$sc{$t}/1000)>0?5:7);
                print "[/color][color=#0000ff]$[/color][color=#008080]lname[/color][color=#008080]\[/color]n[color=#ff00ff]";
                print "[/color][color=#0000cc]-[/color][color=#0000cc]-[/color][color=#0000cc]-[/color][color=#0000cc]-[/color][color=#0000cc]-[/color][color=#0000cc]-[/color][color=#0000cc]-[/color][color=#0000cc]-[/color][color=#0000cc]-[/color][color=#0000cc]-[/color][color=#0000cc]-[/color][color=#0000cc]\[/color]n[color=#ff00ff]";
                $nowsc++;
            }            
        }
      }
    }
}
else
{
    cprin("[/color][color=#ff00ff]\[/color]n[color=#0000cc][[/color][color=#0000cc]![/color][color=#0000cc]][/color] GetInfo Fail\n[color=#ff00ff]",5);
}

sleep 10;
goto START;

sub cprin
{
    ($str,$i)=@_;
    cprint("[/color][color=#ff00ff]\[/color]x03[color=#ff00ff]" . $i . "[/color] [color=#0000ff]$[/color][color=#008080]str[/color][color=#008080]\[/color]x030[/color][/font][/td][/tr][/table]

支持代理的版本,使用HTTP_PROXY、FTP_PROXY等环境变量,HTTP代理测试可用,其他待测试。
需要的perl包:Color-Output-1.05.tar.gz , libwww-perl-5.826.tar.gz , URI-1.38.tar.gz

谢谢LZ分享!!!


 shihao138096 回复于:2009-06-05 09:42:51

太牛了,我这个新手什么时候才能做出这种效果呢:em16:


 Perl_Er 回复于:2009-06-05 10:26:54

学习


 kingdisc666 回复于:2009-06-06 11:02:38

GOOD!


 小公猫 回复于:2009-06-06 11:59:40

不错!




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=1453011
转载请注明作者名及原文出处