Python 实现给女朋友的每日微信消息提醒!做一个贴心的程序员!!!
文章首发于个人站点 实现微信消息每日贴心提醒 | 隐舍
微信公众号:【DreamHub】
如何做一个贴心的程序员男朋友?从微信每日提醒开始吧!!!
微信消息内容
包括如下:
- 日期(阳历+阴历);
- 每日壹句(内容来自爱词霸);
- 天气预报(内容来自中国天气网):
- 天气情况;
- 温度情况;
- 穿衣指数;
- 减肥指数;
- 空气指数;
- 紫外线指数;
消息效果
功能模块及其Python实现
依赖包
- requests==2.22.0
- itchat==1.3.10
- sxtwl==1.0.7
日期(阳历+阴历)
def getDate():"""Get date: solar + lunar calendar:return: String calendar"""ymc = [u"十一", u"十二", u"正", u"二", u"三", u"四",u"五", u"六", u"七", u"八", u"九", u"十"]rmc = [u"初一", u"初二", u"初三", u"初四", u"初五", u"初六", u"初七", u"初八", u"初九", u"初十",u"十一", u"十二", u"十三", u"十四", u"十五", u"十六", u"十七", u"十八", u"十九",u"二十", u"廿一", u"廿二", u"廿三", u"廿四", u"廿五", u"廿六", u"廿七", u"廿八", u"廿九", u"三十", u"卅一"]numCn = ["天", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"]# 获取阳历和阴历year = datetime.datetime.now().yearmonth = datetime.datetime.now().monthday = datetime.datetime.now().daylunar = sxtwl.Lunar()date_lunar = lunar.getDayBySolar(year, month, day)print_date = str(date_lunar.y) + "年" + str(date_lunar.m) + \"月" + str(date_lunar.d) + "日"if date_lunar.Lleap:print_lunar = "润" + ymc[date_lunar.Lmc] + \"月" + rmc[date_lunar.Ldi] + "日"else:print_lunar = ymc[date_lunar.Lmc] + "月" + rmc[date_lunar.Ldi] + "日"print_week = "星期" + numCn[date_lunar.week]calendar = '日期:' + print_date + ', ' + print_week + '\n' + \'农历: ' + print_lunar + '\n'return calendar
每日壹句(内容来自爱词霸)
def getDailySentence():"""Get AiCiBa Daily Sentencereturn: String English + Chinese"""url = 'http://open.iciba.com/dsapi/'r = requests.get(url)all = json.loads(r.text)Englis = all['content']Chinese = all['note']daily_sentence = '\n@每日壹句:'+'\n'+Englis+'\n'+Chinese+'\n'return daily_sentence
天气预报(内容来自中国天气网)
def getInfo(location):"""Get More Weather Information.Arguments:location {String} -- location htmlReturns:String -- Information"""response = requests.get(html)content = response.content.decode("utf-8")aim = re.findall(r'<input type="hidden" id="hidden_title" value="(.*?)月(.*?)日(.*?)时(.*?) (.*?) (.*?) (.*?)"', content)airdata = re.findall(r'<li class="li6">\n<i></i>\n<span>(.*?)</span>\n<em>(.*?)</em>\n<p>(.*?)</p>', content)ult_index = re.findall(r'<li class="li1">\n<i></i>\n<span>(.*?)</span>\n<em>(.*?)</em>\n<p>(.*?)</p>\n</li>', content)cloth_index = re.findall(r'<i></i>\n<span>(.*?)</span>\n<em>(.*?)</em>\n<p>(.*?)</p>\n</a>\n</li>\n<li class="li4">', content)# wash_index = re.findall(r'<li class="li4">\n<i></i>\n<span>(.*?)</span>\n<em>(.*?)</em>\n<p>(.*?)</p>', content)lose_index = re.findall(r'</span>\n<em>(.*?)</em>\n<p>(.*?)</p>\n</a>\n</li>\n<li class="li5">', content)# print(lose_index)txt1 = '@天气预报:'+'\n'txt2 = '天气情况: '+aim[0][5]+'\n'+'温度情况: '+aim[0][6]+'\n'txt3 = '穿衣指数: '+cloth_index[0][0]+', '+cloth_index[0][2]+'\n'txt4 = '减肥指数:' + lose_index[0][1]+'\n'txt5 = '空气指数: '+airdata[0][0]+', '+airdata[0][2]+'\n'txt6 = '紫外线指数: '+ult_index[0][0]+', '+ult_index[0][2]+'\n'# txt7 = '洗车指数: '+wash_index[0][0]+', '+wash_index[0][2]+'\n'more_information = '\n'+txt1+txt2+txt3+txt4+txt5+txt6return more_information
微信登录及主函数
微信操作模块API参考:https://github.com/littlecodersh/ItChat
def autoWechat(text, nickname):"""Wechat automatic login and send message.Arguments:name {wechat name} -- send by wechat nametext {String} -- message."""itchat.auto_login()result = itchat.search_friends(nickName=nickname)user_name = result[0]['UserName']itchat.send(text, user_name)def main():xxx = "\n来自梦宝宝的爱:\n"city_code = "101240101"nickname = "******" # 对方的微信昵称location = "http://www.weather.com.cn/weather/"+city_code+".shtml"autoWechat(getDate()+xxx+getDailySentence()+getInfo(location), nickname)main()
PS:每个城市在中国天气网都有对应的代码在其https链接中,可自行查阅;小编为大家整理了城市对应的编码表格,可在微信公众号【DreamHub】回复【daily】领取;
待解决的问题
如果推送每日消息提醒,那么每天需要手动执行代码,这就很难受了!
下次有时间更新如何部署到服务器中定时执行!
关注作者
Python 实现给女朋友的每日微信消息提醒!做一个贴心的程序员!!!相关推荐
- python自动推送消息_使用Python制作自动推送微信消息提醒的备忘录功能
日常工作生活中,事情一多,就会忘记一些该做未做的事情.即使有时候把事情记录在了小本本上或者手机.电脑端备忘录上,也总会有查看不及时,导致错过的尴尬.如果有一款小工具,可以及时提醒,而不用再主动去查备忘 ...
- python 全栈开发,Day103(微信消息推送,结算中心业务流程)
python 全栈开发,Day103(微信消息推送,结算中心业务流程) 昨日内容回顾 第一部分:考试题(Python基础)第二部分:路飞相关 1. 是否遇到bug?难解决的技术点?印象深刻的事?- o ...
- python自动推送消息_用Python设计一个可以自动推送微信消息提醒的备忘录
请关注微信公众号:金融数学 FinancialMathematics日常工作生活中,事情一多,就会忘记一些该做未做的事情.即使有时候把事情记录在了小本本上或者手机.电脑端备忘录上,也总会有查看不及时, ...
- 微信消息提醒与消息数字提示之BadgeView
微信消息提醒与消息数字提示之BadgeView BadgeView 一个可以自由定制外观.支持拖拽消除的 MaterialDesign 风格 Android BadgeView. GitHub地址:h ...
- 基于tushare实现股票实时价格变动的监控并用itchat实现微信消息提醒
基于tushare实现股票实时价格变动的监控并用itchat实现微信消息提醒 1.实时检查股票价格的函数 2.定义开盘时间,收盘时间和当前时间 3.定义一个微信发送提醒消息的函数 4.主循环函数实现自 ...
- 华为设置android系统提醒功能,华为Watch GT2消息提醒怎么设置?短信微信消息提醒设置方法...
华为Watch GT2是一款物美价廉的智能手表,同样也是一款非常实用的运动手表,那么华为watch gt2怎么设置消息提醒呢,为了不让大家错过手表上的短信.QQ和微信消息提醒,今天智能手机网小编就来分 ...
- 每日一皮:公司来了个程序员鼓励师...
往期推荐 每日一皮:996标配工位原来是这样的! 每日一皮:这张图送给正在努力改Bug的你 每日一皮:地铁上打瞌睡的程序员... 每日一皮:为这位姑娘的回答鼓掌! 每日一皮:经历过的Bug修复过程.. ...
- python是通用编程语言吗-2020年,编程语言将不再只属于程序员,尤其是这门语言...
原标题:2020年,编程语言将不再只属于程序员,尤其是这门语言 "学python,那不就是去做程序员吗?" 一提到python,许多同学第一反应会觉得,这是要去做程序员才需要学的技 ...
- 常用python编程软件-学习编程语言常用的10个工具、库——每个程序员都应该知道...
原标题:学习编程语言常用的10个工具.库--每个程序员都应该知道 每个行业都有自己的工具,软件开发也没有什么不同.一个优秀的程序员应该比其他程序员更了解他的工具,而且还可以使用比普通工具更强大和更高级 ...
最新文章
- spring开发_BeanFactoryPostProcessor_容器后处理器
- nginx防mysql注入_nginx防止sql注入
- keil4怎么移植其他人的程序_裸机程序如何驱动硬件?
- LSTM如何解决梯度消失或爆炸的?
- tomcat安全配置之禁用Directory Listing
- 【目录】 网络瑞士军刀-netcat的秘诀
- 关于多线程的一个例子(UI实时显示)
- 工作148:父子组件传值 获取时间戳
- oracle创建索引01652,建立数据表快照导致ora-01652异常
- 大型互联网分布式企业微服务云架构
- 字符串连接类(Javascript)
- JSP九大内置对象的作用和用法
- php中字符串的截取函数,PHP字符串截取和截取函数的介绍
- Android面试:说一下 LiveData 的 postValue ?与SetValue有什么区别?连续调用会有什么问题?为什么?
- 使用curl请求接口
- 树莓派+L9110S电机模块
- Android 基于libaums实现读写U盘文件
- Inspection info: This inspection analyzes method control and data flow to report possible conditions
- Python制图常用设置
- springBoot整合spring security+JWT实现单点登录与权限管理前后端分离--筑基中期