免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1967 | 回复: 5
打印 上一主题 下一主题

获取的web数据,匹配问题,请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-23 13:49 |只看该作者 |倒序浏览
参考了前面一哥们发的股票脚本,加进了上证和深证指数代码,就不行,奇怪。。。

http://bbs.chinaunix.net/viewthread.php?tid=1453011&extra=&page=1

use LWP::Simple;

if(my $googled=get("http://www.google.cn/finance/info?q=id-7521596"))
{
    print "\n";
    my @info=split(/\,/,$googled);
    for my $newinfo(@info)
    {
        if ($newinfo=~/\"(.*)\"\s\:\s\"(.*)\"/)
        {
         print "
$1 : $2 \n

             }
      }
}





http://www.google.cn/finance/info?q=id-7521596
的数据如下


// [
{
"id": "7521596"
,"t" : "000001"
,"e" : "SHA"
,"l" : "2,960.77"
,"l_cur" : "¥2,960.77"
,"ltt":"15:00"
,"lt" : "8月21日 15:00"
,"c" : "+49.19"
,"cp" : "1.69"
,"ccol" : "chr"
}
]


为什么,$newinfo=~/\"(.*)\"\s\:\s\"(.*)\"/)   匹配不到 ,"l" : "2,960.77" 呢


实际匹配的数据为:

t : 000001
e : SHA
lt : 8月21日 15:00
c : +49.19
cp : 1.69
ccol : chr


请教...



[ 本帖最后由 dayan_he 于 2009-8-23 19:01 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-08-23 22:44 |只看该作者
貌似我这里没有问题

论坛徽章:
0
3 [报告]
发表于 2009-08-24 00:00 |只看该作者
我这运行也没发现问题

论坛徽章:
0
4 [报告]
发表于 2009-08-24 08:57 |只看该作者
LS楼上两位市直接读的文件,还是从WEB数据读取的?
我这里运行,普通的代码是没问题的,不过就是上证和深证获取数据匹配不完整

论坛徽章:
0
5 [报告]
发表于 2009-08-24 16:01 |只看该作者
建议你自己仔细调试一下

,"l" : "2,960.77"

我发觉在这里被,  逗号 截断了。

因为没有一只股票能上1K多的价格,所以不存在, 逗号,也就不会匹配不到。

[ 本帖最后由 xti9er 于 2009-8-24 16:02 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-08-24 17:23 |只看该作者
这个问题也考虑过
1.在get数据之后,对,做替换处理后,结果还是如此无法匹配到上证和深证这两个代码的指数,别的都Ok
2.将get后的数据直接保存为html文件,从文件读取后,匹配正常
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP