文章首发于个人站点 实现微信消息每日贴心提醒 | 隐舍
微信公众号:【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 实现给女朋友的每日微信消息提醒!做一个贴心的程序员!!!相关推荐

  1. python自动推送消息_使用Python制作自动推送微信消息提醒的备忘录功能

    日常工作生活中,事情一多,就会忘记一些该做未做的事情.即使有时候把事情记录在了小本本上或者手机.电脑端备忘录上,也总会有查看不及时,导致错过的尴尬.如果有一款小工具,可以及时提醒,而不用再主动去查备忘 ...

  2. python 全栈开发,Day103(微信消息推送,结算中心业务流程)

    python 全栈开发,Day103(微信消息推送,结算中心业务流程) 昨日内容回顾 第一部分:考试题(Python基础)第二部分:路飞相关 1. 是否遇到bug?难解决的技术点?印象深刻的事?- o ...

  3. python自动推送消息_用Python设计一个可以自动推送微信消息提醒的备忘录

    请关注微信公众号:金融数学 FinancialMathematics日常工作生活中,事情一多,就会忘记一些该做未做的事情.即使有时候把事情记录在了小本本上或者手机.电脑端备忘录上,也总会有查看不及时, ...

  4. 微信消息提醒与消息数字提示之BadgeView

    微信消息提醒与消息数字提示之BadgeView BadgeView 一个可以自由定制外观.支持拖拽消除的 MaterialDesign 风格 Android BadgeView. GitHub地址:h ...

  5. 基于tushare实现股票实时价格变动的监控并用itchat实现微信消息提醒

    基于tushare实现股票实时价格变动的监控并用itchat实现微信消息提醒 1.实时检查股票价格的函数 2.定义开盘时间,收盘时间和当前时间 3.定义一个微信发送提醒消息的函数 4.主循环函数实现自 ...

  6. 华为设置android系统提醒功能,华为Watch GT2消息提醒怎么设置?短信微信消息提醒设置方法...

    华为Watch GT2是一款物美价廉的智能手表,同样也是一款非常实用的运动手表,那么华为watch gt2怎么设置消息提醒呢,为了不让大家错过手表上的短信.QQ和微信消息提醒,今天智能手机网小编就来分 ...

  7. 每日一皮:公司来了个程序员鼓励师...

    往期推荐 每日一皮:996标配工位原来是这样的! 每日一皮:这张图送给正在努力改Bug的你 每日一皮:地铁上打瞌睡的程序员... 每日一皮:为这位姑娘的回答鼓掌! 每日一皮:经历过的Bug修复过程.. ...

  8. python是通用编程语言吗-2020年,编程语言将不再只属于程序员,尤其是这门语言...

    原标题:2020年,编程语言将不再只属于程序员,尤其是这门语言 "学python,那不就是去做程序员吗?" 一提到python,许多同学第一反应会觉得,这是要去做程序员才需要学的技 ...

  9. 常用python编程软件-学习编程语言常用的10个工具、库——每个程序员都应该知道...

    原标题:学习编程语言常用的10个工具.库--每个程序员都应该知道 每个行业都有自己的工具,软件开发也没有什么不同.一个优秀的程序员应该比其他程序员更了解他的工具,而且还可以使用比普通工具更强大和更高级 ...

最新文章

  1. spring开发_BeanFactoryPostProcessor_容器后处理器
  2. nginx防mysql注入_nginx防止sql注入
  3. keil4怎么移植其他人的程序_裸机程序如何驱动硬件?
  4. LSTM如何解决梯度消失或爆炸的?
  5. tomcat安全配置之禁用Directory Listing
  6. 【目录】 网络瑞士军刀-netcat的秘诀
  7. 关于多线程的一个例子(UI实时显示)
  8. 工作148:父子组件传值 获取时间戳
  9. oracle创建索引01652,建立数据表快照导致ora-01652异常
  10. 大型互联网分布式企业微服务云架构
  11. 字符串连接类(Javascript)
  12. JSP九大内置对象的作用和用法
  13. php中字符串的截取函数,PHP字符串截取和截取函数的介绍
  14. Android面试:说一下 LiveData 的 postValue ?与SetValue有什么区别?连续调用会有什么问题?为什么?
  15. 使用curl请求接口
  16. 树莓派+L9110S电机模块
  17. Android 基于libaums实现读写U盘文件
  18. Inspection info: This inspection analyzes method control and data flow to report possible conditions
  19. Python制图常用设置
  20. springBoot整合spring security+JWT实现单点登录与权限管理前后端分离--筑基中期

热门文章

  1. python 管线原理图_Q-Q图原理详解及Python实现
  2. python二维数组的行和列_python 定义N行2列二维数组与赋值
  3. hbw-utils - UUIDUtils
  4. 1231:最小新整数——贪心
  5. CSRF Token has been associated to this client
  6. Scheduling restart of crashed service解决方案与源码分析
  7. 求学生课程平均分问题
  8. 室内定位UWB在化工园区如何智能化管理
  9. 相对论中的火车隧道问题
  10. java根据url下载文件出现301 Moved Permanently