使用itchat发送天气信息
微信发送当日天气情况
念头萌生
之前在浏览网站的时候发现了篇文章「玩转树莓派」为女朋友打造一款智能语音闹钟,文章中介绍了使用树莓派打造一款语音播报天气的闹钟。
当时就想照着来,也自己做个闹钟。因为一直没有买到树莓派(主要是想不起来买),这件事就搁浅了。虽然硬件没有,但可以用微信啊。
下面开始正文部分。
获取天气信息
目前只是最初版本,只获取了当前的日期、天气状况、气温、风向和风力这五个信息。以上信息都是从中国天气网获取的。
上码:
from bs4 import BeautifulSoup
from urllib.request import urlopen
def get_weather(url):
#url = 'http://www.weather.com.cn/weather/101210402.shtml'
html = urlopen(url).read().decode('utf-8')
# print(html)
soup = BeautifulSoup(html, features='lxml')
today = soup.find('li', attrs={'class': 'sky skyid lv1 on'})
# print(today)
day = today.find('h1').get_text()
# print(day.get_text())
weather = today.find('p', {'class': 'wea'}).get_text()
# print(weather.get_text())
temp = today.find('p', {'class': 'tem'}).get_text()[1:-1]
# print(temp.get_text())
windy = today.find('p', {'class': 'win'}).find('em').find_all('span')
windy = windy[0]['title']+'转'+windy[1]['title']
# print(windy)
windy_power = today.find('p', {'class': 'win'}).find_all('i')[0].get_text()
# print('风力:',windy_power.get_text())
return day, weather, temp, windy, windy_power
get_weather()的参数是包含要查询地区的地区编码的URL链接,使用你要查询的地区编码替换实例中的“101210402”即可。关于地区编码的获取我这里提供两种方法:一种是从网上找现成的,另一种中就是在天气网上输入地区然后得到URL。个人推荐第二种方法,因为这样可以查到县/区这一级别。
使用itchat调用微信
itchat是一个开源的微信个人号接口,使用Python调用微信从未如此简单。关于项目的详细介绍和使用,请看这里。
上码:
import itchat
import weather_tools
def send_weather(url):
# 获取天气信息
day, weather, temp, windy, windy_power = weather_tools.get_weather(url)
# 拼接消息
msg = '今日天气:\n时间:{}\n天气:{}\n气温:{}\n风向:{}\n风力:{}'
msg = msg.format(day, weather, temp, windy, windy_power)
# 登录微信
itchat.auto_login(True)
# 发送消息
itchat.send(msg, toUserName='filehelper')
# 退出登录
itchat.logout()
if __name__ == "__main__":
url = 'http://www.weather.com.cn/weather/101210402.shtml'
send_weather(url)
send_weather()是向 文件助手发送当天的天气状况,‘filehelper’代表微信中的文件助手。
使用itchat发送天气信息的更多相关文章
- 利用json获取天气信息
天气预报信息获取是利用json获取的,网上有非常多资源,源码.因为上面涉及到非常多天气信息,包含湿度,出行建议等,以及加入了全部城市代码的资源包.为了练手了解json的原理.我仅获取诚笃城市的最高温, ...
- python 3.6 urllib库实现天气爬取、邮件定时给妹子发送天气
#由于每天早上要和妹子说早安,于是做个定时任务,每天早上自动爬取天气,发送天气问好邮件##涉及模块:#(1)定时任务:windows的定时任务# 配置教程链接:http://b ...
- Java通过webservice接口获取天气信息
通过SOAP请求的方式获取天气信息并解析返回的XML文件. 参考: http://www.webxml.com.cn/WebServices/WeatherWS.asmx import java.io ...
- Linux网络编程之"获取网络天气信息"
需求分析: 1.需要Linux c 网络编程基础, 2.需要了解 http 协议 3.需要天气信息相关api(可以从阿里云上购买,很便宜的!) 4.需要cJSON解析库(因为获取到的天气信息一般是用c ...
- python中通过客户端IP拿到所在城市和当地天气信息—附带项目案例
熟悉老一代QQ的小伙伴可能都知道,很早以前的QQ,鼠标滑到头像的位置,你的位置和IP会在详情页显示,那么这个是如何做到的呢?下面我们就来玩一玩这个东西 首先,需求分析: 1.拿到客户端IP 2.通过I ...
- Python简单程序爬取天气信息,定时发邮件给朋友【高薪必学】
前段时间看到了这个博客.https://blog.csdn.net/weixin_45081575/article/details/102886718.他用了request模块,这不巧了么,正好我刚用 ...
- NodeMCU获取并解析心知天气信息
NodeMCU获取并解析心知天气信息 1 注册心知天气并获取私钥 打开心知天气网站,点击注册按钮 填写基本信息注册心知天气账号,登录注册所填写的邮箱点击链接进行账号激活,随后出现如下界面 点击登录按钮 ...
- ESP32 IDF 获取天气信息
一.注册天气获取账号 我使用的知心天气,没有获取天气账号的小伙伴可以去注册一下,知心天气官网:https://www.seniverse.com/ 取得天气获取的API后,可以直接在浏览器中访问测试一 ...
- 半吊子学习Swift--天气预报程序-获取天气信息
昨天申请的彩云天气Api开发者今天上午已审核通过  饭后运动过后就马不停蹄的来测试接口,接口是采用经纬度的方式来获取天气信息,接口地址如下 https://api.caiyunapp.com/v2/ ...
随机推荐
- 关于nginx配置的一个报错connect() to unix:/tmp/php-cgi.sock failed (2: No such file or directory)
针对配置php的情况: linux服务器一般提示这个 connect() to unix:/tmp/php-cgi.sock failed (2: No such file or directory) ...
- 吴裕雄--天生自然python Google深度学习框架:Tensorflow实现迁移学习
import glob import os.path import numpy as np import tensorflow as tf from tensorflow.python.platfor ...
- [ZJOI2019]麻将(DP+有限状态自动机)
首先只需要考虑每种牌出现的张数即可,然后判断一副牌是否能胡,可以DP一下,令f[i][j][k][0/1]表示到了第i位,用j次i-1,i,i+1和k次i,i+1,i+2,是否出现对子然后最大的面子数 ...
- Cesium 生成terrain地形数据----CTB方式及步骤
背景:项目前端使用Cesium,地形服务一直使用外网的,常常因为翻墙访问的问题,导致地形数据取不到,进而导致地球不能加载,故决定搭建自己的地形服务,彻底解决这个问题.博文包含以下几个过程: 下载原始地 ...
- LeetCode No.124,125,126
No.124 MaxPathSum 二叉树中的最大路径和 题目 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定 ...
- 2. Unconstrained Optimization(2th)
2.1 Basic Results on the Existence of Optimizers 2.1. DefinitionLet $f:U->\mathbb{R}$ be a functi ...
- Java面试题4-附答案
BIO.NIO和AIO的区别 Java BIO : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程 ...
- IDEA+selenium3+火狐/谷歌驱动 JAVA初步环境搭建 笔记
0 环境 系统环境:win7 selenium驱动 谷歌浏览器以及驱动 火狐浏览器以及驱动 1 驱动地址的下载 1.1 selenium jar包 https://www.seleniumhq.org ...
- 98)PHP,文件类型获取和创建文件夹
看手册 finfo这个类:This class provides an object oriented interface into the fileinfo functions. 这个$mime_ ...
- asp.net 获取日期
//获取日期+时间 DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().ToString(); // 20 ...