python使用itchat模块给心爱的人每天发天气预报

yipeiwu_com6年前Python基础

本文实例为大家分享了python给心爱的人每天发天气预报的具体代码,供大家参考,具体内容如下

下面的代码实现了用了之前获取天气的代码,然后用itchat模块

给指定的人发送消息

代码比较简单,改一下CITY_NAME和name个发送语句直接就可以用

import requests
import json
import itchat
from threading import Timer

global CITY_NAME
CITY_NAME = "北京"
headers = {
 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'
}


def find_weather():
 # 获取天气
 weather_url = 'http://wthrcdn.etouch.cn/weather_mini?city={}'.format(CITY_NAME)
 city_response = requests.get(weather_url, headers=headers)
 return json.loads(city_response.text)


def reform_fl(str_fl):
 new_str = str_fl.split("[")[2].split("]")[0]
 if new_str.startswith("<"):
  result = new_str.split("<")[1]
 else:
  result = new_str
 return result


def send_news(str):

 itchat.auto_login() # 弹出一张图片二维码,扫描登录网页微信
 person= itchat.search_friends(name='一只可爱的小奶猫') # 选择给谁发送,name是他的备注
 mylover = person[0]["UserName"]
 itchat.send(str, toUserName=mylover)
 Timer(86400, send_news).start() # 每隔86400秒发送一次,每天发一次


if __name__ == "__main__":

 weather_info = find_weather()
 forecast_weather = weather_info.get('data').get('forecast')
 ganmao = weather_info.get('data').get('ganmao')
 str_1 = '今天是:' + forecast_weather[0].get('date') + '\n' \
   + '最高温度:' + forecast_weather[0].get('high') + '\n' \
   + '最低温度:' + forecast_weather[0].get('low') + '\n' \
   + '风向:' + forecast_weather[0].get('fengxiang') + '\n' \
   + '风力:' + reform_fl(forecast_weather[0].get('fengli')) + '\n' \
   + '天气状况:' + forecast_weather[0].get('type') + '\n'
 str_2 = "早安亲爱滴:%s\n%s最近%s" % (str_1,CITY_NAME, ganmao)
 send_news(str_2)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现监控某个服务 服务崩溃即发送邮件报告

前言:最近我们的升级服务器有点不太稳定,经常崩溃掉。然后客户连接不上,跟我们反馈才知道。所以写这个脚本的目的就是为了比客户提前知道升级服务的运行状况,一旦崩溃掉,就能第一时间登录上去,开...

Python 模块EasyGui详细介绍

Python 模块EasyGui详细介绍 前言: 在Windows想用Python开发一些简单的界面,所以找到了很容易上手的EasyGui库。下面就分享一下简单的使用吧。 参考的链接:官...

Python greenlet实现原理和使用示例

最近开始研究Python的并行开发技术,包括多线程,多进程,协程等。逐步整理了网上的一些资料,今天整理了一下greenlet相关的资料。 并发处理的技术背景 并行化处理目前很受重视, 因...

python判断一个数是否能被另一个整数整除的实例

判断一个数是否能被另一个整数整除是一个挺简单的问题,一般一个模运算就可以搞定了,懒惰的晓萌还是不想自己做,于是找到你帮他写代码,你就帮帮他吧。 输入格式 输入包括两个由空格分开的整数M...

详解python的几种标准输出重定向方式

一. 背景 在Python中,文件对象sys.stdin、sys.stdout和sys.stderr分别对应解释器的标准输入、标准输出和标准出错流。在程序启动时,这些对象的初值由sys...