从百度天气获取当地明天的天气情况,如果明天下雨,请发送邮件通知全体同事带伞,

如果明天气温低于10度,请邮件提醒同事注意保暖,如果气温高于30度则提醒同事注意高温。

假设存在发送邮件的方法self.send_email(email_content)

代码如下:

#coding=utf-8
from selenium import webdriver
import unittest
from time import sleep

class WeatherReport(unittest.TestCase):

    def setUp(self):
        self.dr = webdriver.Chrome()
        self.weather, self.the_highest_temperature, self.the_lowest_temperatrue = self.get_tomorrow_weather_and_temperature()
        self.content = self.email_content()

    def get_tomorrow_weather_and_temperature(self):
        self.baidu_search('成都天气')
        sleep(5)
        weather = self.dr.find_elements_by_css_selector('.op_weather4_twoicon_weath')[1].text #首先获取明日天气
        print('明日天气为%s' %weather)
        temperature = self.dr.find_elements_by_css_selector('.op_weather4_twoicon_temp')[1].text #其次获取明日温度
        the_highest_temperature = int(temperature.split(' ~ ')[0]) #从温度中获取明日最高温度并转为整型
        print('明日最高温度%s℃' %the_highest_temperature)
        the_lowest_temperature = temperature.split(' ~ ')[1] #从温度中获取明日最低温度
        print('明日最低温度%s' %the_lowest_temperature)
        return weather, the_highest_temperature, the_lowest_temperature

    def baidu_search(self, CityWeather):
        self.dr.get('http://www.baidu.com')
        self.dr.find_element_by_id('kw').send_keys(CityWeather)
        self.dr.find_element_by_id('su').click()

    def email_content(self):
        if '雨' in self.weather:
            content = '通知:明天有雨,请全体同事带伞!'
        else:
            if self.the_highest_temperature > 30:
                content = '提醒:明日气温高于30度,请全体同事注意高温'
            elif self.the_highest_temperature < 10:
                content = '提醒:明日气温低于10度,请全体同事注意保暖'
            else:
                content = ''
        return content

    def test_send_email(self):
        print('%s' %self.content)

    def tearDown(self):
        self.dr.quit()

if __name__ == '__main__':
    unittest.main()

网页如下:

实现如下:

用python+selenium从百度获取本地明日的天气信息并根据温度情况设置提醒的更多相关文章

  1. python selenium 练习 自动获取豆瓣阅读当前特价书籍 chrome 元素定位 窗口切换 元素过期

    豆瓣原创电子书每周推出数十本限时免费数目,一周免费期过后恢复原价.想着豆瓣原创书中有不少值得一看,便写了个脚本,免去一个个添加的烦恼. 使用了Windows下selenium+Python的组合,有较 ...

  2. python+selenium实现百度关键词搜索自动化操作

    缘起 之前公司找外面网络公司做某些业务相关关键词排名,了解了一下相关的情况,网络公司只需要我们提供网站地址和需要做的关键词即可,故猜想他们采取的方式应该是通过模拟用户搜索提升网站权重进而提升排名. 不 ...

  3. Python + Selenium 练习篇 - 获取页面所有邮箱

    代码如下: # coding=utf-8import re    #python中利用正则,需要导入re模块from selenium import webdriverdriver = webdriv ...

  4. python selenium实现百度搜索

    1.环境 python2.7+selenium+phantomjs+linux 2.代码 #-*-coding:utf-8 -*- from selenium import webdriver fro ...

  5. Python使用WMI模块获取Windows系统的硬件信息,并使用pyinstaller库编译打包成exe的可执行文件

    由于公司现阶段大多数应用软件都是基于Windows系统开发和部署,很多软件安装部署都是在windows server 2012.windows server 2008之类的服务器上,部门同事每次测试一 ...

  6. Python+selenium爬取智联招聘的职位信息

    整个爬虫是基于selenium和Python来运行的,运行需要的包 mysql,matplotlib,selenium 需要安装selenium火狐浏览器驱动,百度的搜寻. 整个爬虫是模块化组织的,不 ...

  7. [VC]获取本地程序的版本信息信息

    CString CQwerApp::IS_GetAppVersion(char *AppName) { ////需要加上version.lib在link里 CString AppVersion; // ...

  8. python使用wmi模块获取windows下的系统信息监控系统-乾颐堂

    Python用WMI模块获取Windows系统的硬件信息:硬盘分区.使用情况,内存大小,CPU型号,当前运行的进程,自启动程序及位置,系统的版本等信息. 本文实例讲述了python使用wmi模块获取w ...

  9. Linux下编程获取本地IP地址的常见方法

    转载于:http://blog.csdn.net/k346k346/article/details/48231933 在进行linux网络编程时,经常用到本机IP地址.本文罗列一下常见方法,以备不时之 ...

随机推荐

  1. LeetCode Spiral Matrix

    class Solution { public: vector<int> spiralOrder(vector<vector<int> > &matrix) ...

  2. mysql 查询当天、本周,本月,上一个月的数据

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 近7天 DAY) <= date(时间字段名) 近30天 DAY) & ...

  3. 荣品RP4412开发板烧写内核cannot load出错的原因

    问:荣品RP4412开发板烧写必须要配置Xmanager吗? 现在我烧写内核出现这个错误是什么原因呢? 答:4412文件夹下没有zImage这个文件, 你打开4412这个文件夹. 你都拼写错了, zI ...

  4. iOS UIView上添加mp4视频

    ViewController.h文件中添加如下代码: #import <MediaPlayer/MediaPlayer.h> @property(nonatomic,retain) MPM ...

  5. 【转】javascript打印设置

    页面中的代码:<OBJECT id="WebBrowser1" height="0" width="0"        classid ...

  6. 高性能javascript(记录三)

    DOM(文档对象模型)是一个独立的语言,用于操作XML和HTML文档的程序接口(API).在游览器中,主要用来与HTML文档打交道,同样也用在Web程序中获取XML文档,并使用DOM API用来访问文 ...

  7. everthing 添加右键菜单

    Tool --> Options --> General -->勾上 Show folder context menus

  8. mongogogog

    $cmp,$eq,$gt,$gte,$lt,$lte,$ne$setEquals,$setIntersection,$setUnion,$setDifference,$setLsSubset,$any ...

  9. Bootstrap <基础八>图片

    Bootstrap 提供了三个可对图片应用简单样式的 class: .img-rounded:添加 border-radius:6px 来获得图片圆角. .img-circle:添加 border-r ...

  10. 在MAC上搭建cordova3.4.0的IOS和android开发环境

    Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...