每天在公司上班,打开QQ的同时,就顺便看了一下今天的天气情况。当时就在想,可不可以用perl来解析这个html页面,抽取其中必要的elements,然后透过第三方的飞信将该消息发送给自己,不就可以了么。说干就干,就写了这么一段代码,算法不是特别好,参考了某位网友的处理方法,但又有区别。

获取天气预报的页面地址,我用了这个address

  1. http://qq.ip138.com/weather/zhejiang/HangZhou.htm

完整的code如下:(调试了一天,妈妈的)

  1. #!/usr/bin/perl -w
  2. use strict;
  3. #utf8一定要加,否则出现乱码
  4. use utf8;
  5. use LWP::Simple;
  6. use 5.010;
  7. my $url = shift || "http://qq.ip138.com/weather/zhejiang/HangZhou.htm";
  8. my $content = get $url;
  9. my @url = split /\n/,$content;
  10. my $path = "/root/lib";
  11. my $fetion = "/root/lib/fetion";
  12. &get_weather(\@url);
  13. system(qq{LD_LIBRARY_PATH=$path $fetion --mobile=12345678901 --pwd='123456' --to=123456 --exit-on-verifycode=1 --file-utf8=/root/weather.txt --msg-type=1});
  14. sub get_weather($) {
  15. my ( $weather ) = @_;
  16. my ( $count,$i ) = ( 0,0 );
  17. while ( $i < scalar(@$weather) ) {
  18. next unless @$weather[$i++] =~ /日期/;
  19. $i += 1;
  20. open my $file,'>>','/root/weather.txt' or die "$!\n";
  21. if ( -s '/root/weather.txt' > 0 ) {
  22. system("cat /dev/null >/root/weather.txt");
  23. }
  24. while ( $count < 1 ) {
  25. @$weather[$i++] =~ /(?:.*)\>(?<name1>.*?)\<\/td\>/;
  26. $count ++;
  27. say $file "$+{name1}\t";
  28. }
  29. say $file "\n";
  30. $i += 9;
  31. $count = 0;
  32. while ( $count < 1 ) {
  33. @$weather[$i++] =~ /.*\>(?<name2>.*)\<\/td\>/;
  34. $count ++;
  35. say $file "$+{name2}\t";
  36. }
  37. say $file "\n";
  38. $i += 9;
  39. $count = 0;
  40. while ( $count < 1 ) {
  41. @$weather[$i++] =~ /(?:.*)\>(?<name3>.*?)\<\/td\>/;
  42. $count ++;
  43. say $file "$+{name3}\t";
  44. }
  45. close $file;
  46. last;
  47. }
  48. }

此支perl程序,仅仅抽取了天气预报详情页面的这几个值:

1) 日期

2) 实际天气情况

3)当天的气温

其他的就没有弄了,情况类似。

附:linux下配置飞信的方法

下载机器人支持库

  1. http://www.it-adv.net/fetion/linuxso_20101113.rar

注:我的系统是64位的,但是如果下载了64位的版本,ms有问题,32位的就OK

另外,linux用户,请不要把支持库中的 lib* 复制到 /usr/lib 下,因为发行版本不同,可能会覆盖您机器中的核心库,导致严重系统问题。您可以把库解压到主程序的相同目录,然后以 LD_LIBRARY_PATH=. ./fetion 来运行)

详细介绍见这个页面

  1. http://bbs.it-adv.net/viewthread.php?tid=1081&extra=page%3D1

转载于:https://blog.51cto.com/hellosa/620743

Perl结合飞信发送免费的天气预报信息相关推荐

  1. php免费利用飞信发送验证码,php结合飞信 免费天气预报短信

    开始教你怎么弄 一.需要有一个PHP环境.为了图省事下载APMServ软件快速搭建PHP环境 二.下载天气预报短信通知PHP程序点这里下载代码 三.修改PHP程序配置 用记事本打开WeatherFor ...

  2. 利用API实现获取城市的天气预报信息和给指定手机号码发送验证码——基于Java

    文章目录 一.认识网址 二.获取城市的天气预报信息 三.给指定手机号码发送验证码 四.实现自定义短信内容的短信验证码发送 五.小结 六.参考资料 一.认识网址 网址的组成:协议://域名:端口号/虚拟 ...

  3. 系统监控:linux命令行-飞信客户端发送免费报警短信

    linux命令行下用Fetion飞信发送免费短信 一.最新版本2009 通过linux命令行来发送短信的方法,觉得甚是好用,适用运维监控.这里向大家推荐的是飞信机器人的软件,支持linux.命令行下的 ...

  4. php免费利用飞信发送验证码,php通过飞信发送短信

    php发送短信有两个方法一个就是通过审请的接口接入网站,之后就可以使用啦. 但是上面的这一种是收费的. 下面给大家介绍一种免费的,使用飞信发送的方法,这个发送短信的类是一位高手写出来的. /** * ...

  5. JAVA读取指定城市的天气预报信息及给指定手机号码发送验证码

    目录 一.读取指定城市的天气预报信息 1.概况 1.网址组成分析 2.URL类 3.编码表 4.API列表 2.代码 3.运行效果 二.给指定手机号码发送验证码 1.API列表 2.代码如下 3.实现 ...

  6. 树莓派定时运行python程序_定时发送免费天气预报(邮件)短信通知的Python脚本,通用Linux,也适合树莓派...

    最近在摆弄Python和树莓派,故写了个定时发送免费天气预报(邮件)短信通知的Python脚本,通用Linux,也适合树莓派或者Windows系统,为Python3版本,Python2环境下使用的话, ...

  7. 飞信发送手机短信接口

    mshta " http://sms.api.bz/fetion.php?username=发送者手机号码&password=飞信登录密码&sendto=接收者手机号码&am ...

  8. 用PHP模拟登录WAP飞信实现飞信发送

    目前网上有很多第三方的飞信接口.缺点是都不太稳定,很多到现在都失效无法使用了,另外我们还会担心信息的外泄.其实我们可以自己动手实现一个这样的一个接口,我这里给出的思路非常简单:通过模拟登录WAP版飞信 ...

  9. 教你在Linux用飞信(fetion)免费发短信

    http://linux.chinaunix.net/bbs/thread-1021142-1-1.html 一. 软件环境(centos 5为例) -- 原文从 www.hiadmin.com转载 ...

  10. 使用sql服务器发送贺卡_创建和发送免费电子贺卡的最佳网站

    使用sql服务器发送贺卡 With the holiday season upon us, it's time to pull out the holiday card list and get wr ...

最新文章

  1. 基于价值链的流程框架分类_基于价值的类
  2. 端到端测试_端到端测试的滥用–测试技术2
  3. Apollo进阶课程 ⑦ | 高精地图的采集与生产
  4. 【vue2.0进阶】用axios来实现数据请求,简单易用
  5. linux 内核模型,The Linux Kernel Device Model - Overview -- Linux 内核设备模型概述
  6. 大文件上传NeatUpload
  7. C++primer 9.3.3节练习
  8. GROUP BY你都不会!ROLLUP,CUBE,GROUPPING详解
  9. 关于solaris中 crontab -e 出现数字0的解决办法
  10. shell习题第22题:
  11. hive 前7天标准差_为啥科目三考试前只让练7天?教练实话实说:这是为你们好...
  12. stm32内部低速rtc_STM32时钟RCC详解
  13. 微信登录功能的实现直接复制就能使用(封装)
  14. 持续交付2.0 pdf_便捷下载发布v7.2.0版本更新
  15. 关于xcode中的代码比较工具
  16. Machine learning approximation algorithmsfor high-dimensional fully nonlinear PDE
  17. VB中MID如何使用
  18. 四、项目进度管理20题
  19. 环信群列表 php,一行代码实现群聊头像(用环信仿微信群聊头像)
  20. 《制药企业设施设备运维管理与节能减排》专题会议 特邀讲师勃林格殷格翰首席工程师

热门文章

  1. cat(MATLAB
  2. 错过了粽子不要紧,只是不要错过Ta!
  3. Eclipse中 Clean 的时候总是警告 org.apache.catalina.webresources.Cache backgroundProcess
  4. Android kotlin中配置protobuf
  5. 软工网络15团队作业4——Alpha阶段敏捷冲刺-3
  6. SQL AZURE数据库创建,云计算体验之一
  7. 关于本地缓存localstorage与sessionStorage 数组 (array)字符串(string) 对象(object)的存储技巧和注意事项...
  8. SQL基础---SQL DELETE 语句
  9. LAMP笔记之Apache篇(2)
  10. 苹果电风扇软件Macs Fan Control Pro安装教程