微信发送当日天气情况

念头萌生

之前在浏览网站的时候发现了篇文章「玩转树莓派」为女朋友打造一款智能语音闹钟,文章中介绍了使用树莓派打造一款语音播报天气的闹钟。

当时就想照着来,也自己做个闹钟。因为一直没有买到树莓派(主要是想不起来买),这件事就搁浅了。虽然硬件没有,但可以用微信啊。

下面开始正文部分。

获取天气信息

目前只是最初版本,只获取了当前的日期、天气状况、气温、风向和风力这五个信息。以上信息都是从中国天气网获取的。

上码:

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发送天气信息的更多相关文章

  1. 利用json获取天气信息

    天气预报信息获取是利用json获取的,网上有非常多资源,源码.因为上面涉及到非常多天气信息,包含湿度,出行建议等,以及加入了全部城市代码的资源包.为了练手了解json的原理.我仅获取诚笃城市的最高温, ...

  2. python 3.6 urllib库实现天气爬取、邮件定时给妹子发送天气

    #由于每天早上要和妹子说早安,于是做个定时任务,每天早上自动爬取天气,发送天气问好邮件##涉及模块:#(1)定时任务:windows的定时任务#             配置教程链接:http://b ...

  3. Java通过webservice接口获取天气信息

    通过SOAP请求的方式获取天气信息并解析返回的XML文件. 参考: http://www.webxml.com.cn/WebServices/WeatherWS.asmx import java.io ...

  4. Linux网络编程之"获取网络天气信息"

    需求分析: 1.需要Linux c 网络编程基础, 2.需要了解 http 协议 3.需要天气信息相关api(可以从阿里云上购买,很便宜的!) 4.需要cJSON解析库(因为获取到的天气信息一般是用c ...

  5. python中通过客户端IP拿到所在城市和当地天气信息—附带项目案例

    熟悉老一代QQ的小伙伴可能都知道,很早以前的QQ,鼠标滑到头像的位置,你的位置和IP会在详情页显示,那么这个是如何做到的呢?下面我们就来玩一玩这个东西 首先,需求分析: 1.拿到客户端IP 2.通过I ...

  6. Python简单程序爬取天气信息,定时发邮件给朋友【高薪必学】

    前段时间看到了这个博客.https://blog.csdn.net/weixin_45081575/article/details/102886718.他用了request模块,这不巧了么,正好我刚用 ...

  7. NodeMCU获取并解析心知天气信息

    NodeMCU获取并解析心知天气信息 1 注册心知天气并获取私钥 打开心知天气网站,点击注册按钮 填写基本信息注册心知天气账号,登录注册所填写的邮箱点击链接进行账号激活,随后出现如下界面 点击登录按钮 ...

  8. ESP32 IDF 获取天气信息

    一.注册天气获取账号 我使用的知心天气,没有获取天气账号的小伙伴可以去注册一下,知心天气官网:https://www.seniverse.com/ 取得天气获取的API后,可以直接在浏览器中访问测试一 ...

  9. 半吊子学习Swift--天气预报程序-获取天气信息

    昨天申请的彩云天气Api开发者今天上午已审核通过  饭后运动过后就马不停蹄的来测试接口,接口是采用经纬度的方式来获取天气信息,接口地址如下 https://api.caiyunapp.com/v2/ ...

随机推荐

  1. 剑指offer【11】- 矩形覆盖

    题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 在分析前不知道是什么序列,所以先看了n=1,n=2,n=3,n= ...

  2. Django框架(六):模型(二) 字段查询、查询集

    1. 字段查询 通过模型类.objects属性可以调用如下函数,实现对模型类对应的数据表的查询. 函数名 功能 返回值 说明 get 返回表中满足条件的一条且只能有一条数据. 返回值是一个模型类对象. ...

  3. 求Fibonacii数列的第40个数

    public class Fibonacii{ public int m1(int n){ if(n == 1||n == 2){ return 1; } return m1(n-1) + m1(n- ...

  4. Python2 和 Python3的区别 更新中

    py2和py3的区别 1.默认解释器编码 py2: ascii py3: utf-8 2.输入 输出 输入 py2: name = raw_input('请输入你的姓名:') py3: name = ...

  5. JavaMail读取收件箱退信邮件/分析邮件附件获取Message_Id

    需求描述:公司最近有个项目邮件通知功能,但是客户上传的邮件地址并不一定存在,以及其他的各种问题.所有希望发送通知后有个回执,及时发现地址存在问题的邮箱. 需求分析:经过分析JavaMail可以读取收件 ...

  6. 一文带你了解BOM基本知识

    1.1. BOM和DOM的区别DOM就是一套操作HTML标签的API(接口/方法/属性) BOM就是一套操作浏览器的API(接口/方法/属性) 1.2. BOM中常见的对象window: 代表整个浏览 ...

  7. django框架进阶-CSRF认证

    ############################################### """ django中csrf的实现机制 #第一步:django第一次响应 ...

  8. appium自动化的工作原理(1)

    用appium开发移动端自动化测试脚本这么长时间,还没有认证的了解下它的原理是什么,到底是如何实现的呢? 1.先看一个Appium加载的过程图解(来自:了解appium自动化的工作原理--https: ...

  9. MyEclipse10安装properties文件插件

    安装步骤 1.下载PropertiesEditor插件 http://propedit.sourceforge.jp/index_en.html 2.解压出features.plugins文件 3.在 ...

  10. [LC] 12. Integer to Roman

    Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 ...