使用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/ ...
随机推荐
- Hibernate(四)--延迟加载(lazyload)
hibernate中的延迟加载(lazyload)分属性的延迟加载和关系的延迟加载 属性的延迟加载: 当使用load的方式来获取对象的时候,只有访问了这个对象的属性,hibernate才会到数据库中进 ...
- ios AVPlayer参考
http://www.cnblogs.com/kenshincui/p/4186022.html#avPlayer
- day57-mysql-五种约束和sql语句逻辑执行顺序
二.sql语句逻辑执行顺序 () SELECT () DISTINCT <select_list> 去重复 () FROM <left_table> () <join_t ...
- Different Gene Frequencies in the Two Sexes
I.7 Different Gene Frequencies in the Two Sexes 假设存在一种基因仅在第一代亲代的不同性别之间的概率有区别,比如,A 在male中频率是Pm,a是(1-P ...
- 场景实践篇一:Nginx负载均衡配置
code1 code2 code3 三个文件夹, 每个文件夹下面一个 index.html 的文件夹 cd /etc/nginx/conf.d/ 下面新建 server1.conf ...
- 吴裕雄--天生自然C语言开发:指针
#include <stdio.h> int main () { int var1; ]; printf("var1 变量的地址: %p\n", &var1 ) ...
- mean|mode|median|sample的表达方式
Measures of Center measures of central tendency:the center or most typical value:average Mean:its ar ...
- Python的lambda学习
lambda可以简化简单循环,如下: def fc1(x): return x + 10 print "fc1(23) = ", fc1(23) y = lambda x: x+1 ...
- iOS火焰动画效果、图文混排框架、StackView效果、偏好设置、底部手势等源码
iOS精选源码 高性能图文混排框架,构架顺滑的iOS应用. 使用OpenGLE覆盖阿尔法通道视频动画播放器视图. 可选最大日期截至当日日期的日期轮选器ChooseDatePicker 简单轻量的图片浏 ...
- iOS燃烧动画、3D视图框架、天气动画、立体相册、微信朋友圈小视频等源码
iOS精选源码 iOS天气动画,包括太阳,云,雨,雷暴,雪动画. 较为美观的多级展开列表 3D立体相册,可以旋转的立方体 一个仪表盘Demo YGDashboardView 一个基于UIScrollV ...