免费注册 查看新帖 |

Chinaunix

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

抓取 北京pm2.5数据的小脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-07 21:34 |只看该作者 |倒序浏览
  1. #!/usr/bin/perl

  2. use 5.010;

  3. use LWP::Simple;

  4. my $content = get('http://utils.america.gov/feed2js/feed2js.php?src=http%3A%2F%2Fwww.beijingaqifeed.com%2FBeijingAQI%2FBeijingAir.xml&desc=1&num=10&targ=y&utf=y&pc=y&html=y&words=40&');
  5. my @data = $content =~ m{title="(.*?)\s*?//.*?"}mg;

  6. my %air  = ();

  7. for (@data) {
  8.         next if /no data/;
  9.         my ($date, $time, $t, $pm, $aqi, $status)  = split /;/, $_;
  10.         push @{$air{$date}}, [$time, $pm, $aqi, $status];
  11. }

  12. say '======================================';
  13. for my $date (keys %air) {
  14.         say '         Date: ' . $date;
  15.         say '--------------------------------------';
  16.         say ' Time   PM     AQI        Status';
  17.         say '--------------------------------------';
  18.         for my $data (@{$air{$date}}) {
  19.                 printf "%5s  %-3.1f  %3.0f  %15s\n", @{$data};
  20.         }
  21.         say '======================================';
  22. }
复制代码
运行结果
  1. ---------- Perl Run ----------
  2. ======================================
  3.          Date: 12-07-2011
  4. --------------------------------------
  5. Time   PM     AQI        Status
  6. --------------------------------------
  7. 21:00  11.0   36             Good
  8. 20:00  12.0   39             Good
  9. 19:00  13.0   42             Good
  10. 18:00  16.0   52         Moderate
  11. 17:00  15.0   49             Good
  12. 16:00  18.0   57         Moderate
  13. 15:00  17.0   55         Moderate
  14. 14:00  18.0   57         Moderate
  15. 13:00  17.0   55         Moderate
  16. 12:00  28.0   82         Moderate
  17. 11:00  27.0   79         Moderate
  18. 10:00  146.0  197        Unhealthy
  19. 09:00  202.0  252   Very Unhealthy
  20. 08:00  218.0  268   Very Unhealthy
  21. ======================================
  22.          Date: 12-06-2011
  23. --------------------------------------
  24. Time   PM     AQI        Status
  25. --------------------------------------
  26. 15:00  201.0  251   Very Unhealthy
  27. 14:00  215.0  265   Very Unhealthy
  28. 13:00  215.0  265   Very Unhealthy
  29. 12:00  209.0  259   Very Unhealthy
  30. 11:00  211.0  261   Very Unhealthy
  31. 10:00  210.0  260   Very Unhealthy
  32. 09:00  181.0  231   Very Unhealthy
  33. 08:00  211.0  261   Very Unhealthy
  34. 07:00  231.0  281   Very Unhealthy
  35. 06:00  225.0  275   Very Unhealthy
  36. 05:00  229.0  279   Very Unhealthy
  37. 04:00  237.0  287   Very Unhealthy
  38. 03:00  247.0  297   Very Unhealthy
  39. 02:00  247.0  297   Very Unhealthy
  40. 01:00  252.0  302        Hazardous
  41. ======================================

  42. Output completed (4 sec consumed) - Normal Termination
复制代码

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00
2 [报告]
发表于 2011-12-08 00:49 |只看该作者
顶!

论坛徽章:
0
3 [报告]
发表于 2011-12-08 08:28 |只看该作者
真有心啊

论坛徽章:
0
4 [报告]
发表于 2011-12-08 08:52 |只看该作者
想什么有什么,学习哈

论坛徽章:
0
5 [报告]
发表于 2011-12-08 09:32 |只看该作者
这也太偷懒了,连RSS的解析都给http://utils.america.gov去做了,要是这个米国的网站不能访问了。。。。

论坛徽章:
0
6 [报告]
发表于 2011-12-08 10:03 |只看该作者
提示错误,ms模块不对,需要哪些模块啊,除了simple

论坛徽章:
0
7 [报告]
发表于 2011-12-08 10:09 |只看该作者
欲湿巨进啊~

论坛徽章:
0
8 [报告]
发表于 2011-12-08 10:21 |只看该作者
如果能按照time排个序就好了

论坛徽章:
0
9 [报告]
发表于 2011-12-08 10:37 |只看该作者
提示错误,ms模块不对,需要哪些模块啊,除了simple
ioerr 发表于 2011-12-08 10:03



忘了说了,我的运行环境是 win7+activeperl 5.14。

没在别的环境下测试。

论坛徽章:
0
10 [报告]
发表于 2011-12-08 10:38 |只看该作者
这也太偷懒了,连RSS的解析都给去做了,要是这个米国的网站不能访问了。。。。
nsnake 发表于 2011-12-08 09:32


米国大使馆就是用这个数据源,估计 TG 再恼怒,也不敢封这个网站吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP