开发者社区> 技术小美> 正文

利用python监控天气

简介:
+关注继续查看

需求:

从天气网站抓取天气,在每天6点,检查当天是否会下雨。如果下雨,邮件提醒带伞。


代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@pos ~]# cat weather.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests,bs4,smtplib
def sendMail(body):
    smtp_server = 'smtp.126.com'
    from_mail = 'pp_1990@126.com'
    mail_pass = 'xxxxxxxxxx'
    to_mail = ['50xxxxxx6@qq.com']
    from_name = 'Weather Monitor'
    subject = 'Raining Today!'
    mail = [
        "From: %s <%s>" % (from_name, from_mail),
        "To: %s" % ','.join(to_mail),
        "Subject: %s" % subject,
        "",
        body
        ]
    msg = '\n'.join(mail)
    try:
        = smtplib.SMTP_SSL('smtp.126.com',465)
        s.login(from_mail, mail_pass)
        s.sendmail(from_mail, to_mail, msg)
        s.quit()
    except smtplib.SMTPException as e:
        print("Error: "+e)
if __name__ == "__main__":
    headers={'User-Agent''Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0'}
    url='http://www.tianqi.com/shanghai/'
    urlhtml=requests.get(url,headers=headers)
    urlhtml.raise_for_status()
    weatherhtml=bs4.BeautifulSoup(urlhtml.text[:],'html.parser')
    weather=weatherhtml.select('div li b')
    for in range(len(weather)):
        weathnow=weather[i].getText()
        if weathnow == '有雨':
            sendMail("It's rainy today. Remember to bring your umbrella!")
            print("DONE!")

将脚本写入计划任务,每天6点执行一次。

计划任务可以采用Task Scheduler(windows)、launchd(OS X)、cron(linux)等系统工具。


效果:

blob.png


当然,也可以采用发送短信的方式进行通知。


扩展:

Python之钉钉机器人推送天气预报











本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/2071913,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python:mysql-replication监控MySQL的binlog变动
Python:mysql-replication监控MySQL的binlog变动
31 0
python自动化运维-系统信息监控
python自动化运维-系统信息监控
54 0
监控Python 内存使用情况和代码执行时间
我的代码的哪些部分运行时间最长、内存最多?我怎样才能找到需要改进的地方?”在开发过程中,我很确定我们大多数人都会想知道这一点,在本文中总结了一些方法来监控 Python 代码的时间和内存使用情况。
39 0
Python:mysql-replication监控MySQL的binlog变动
Python:mysql-replication监控MySQL的binlog变动
45 0
《Python轻应用方式打造播报音箱和温湿度监控报警系统》| 学习笔记
快速学习《Python轻应用方式打造播报音箱和温湿度监控报警系统》
107 0
Python监控云南民族大学成绩查询并推送(部署到宝塔)
前景:由于yq上学期考试推迟了,导致本学期考了,现在成绩还查不到,整天去关注也麻烦,于是部署个在服务器检测的脚本,出成绩后推送到微信邮箱 import requests import time def ceshi(): cookies = { #这里填写你自己的cookie '__pInId__': '', 'SESSION': '', } headers = { 'Connection': 'keep-alive',
24 0
Python:mysql-replication监控MySQL的binlog变动
Python:mysql-replication监控MySQL的binlog变动
51 0
Python:mysql-replication监控MySQL的binlog变动
Python:mysql-replication监控MySQL的binlog变动
43 0
使用python时刻中监控文件夹,记录文件夹中文件异常信息
使用python时刻中监控文件夹,记录文件夹中文件异常信息
144 0
使用python监控linux服务器
使用python监控linux服务器
87 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
给运维工程师的Python实战课
立即下载
Python 脚本速查手册
立即下载
ACE 区域技术发展峰会:Flink Python Table API入门及实践
立即下载