简介

这是一个利用爬虫获取API接口数据,通过smtp协议发送邮件到QQ邮箱的小程序,系统设置定时发送。调用了几个接口,大概有以下这几个内容了,比如天气情况,十万个冷笑话,名言名句,冷知识等等,可以根据自己喜欢的内容来编写。

程序

爬取api数据之前要申请自己的api,一般都会有免费的 我用的是天行数据API。

contentSpider.py


import requests
import json
import time
# 每日一句
def dailyQuotes():url = 'http://api.tianapi.com/txapi/one/index?key=填入自己的申请key'res = requests.get(url)content = json.loads(res.text)['newslist'][0]['word']return '<每日一句>:\n' + content + '\n'# 今日天气
def weatherApi():city = '湘潭市'url = 'http://api.tianapi.com/txapi/tianqi/index?key=填入自己的申请key&city='+cityres = requests.get(url)content1 = json.loads(res.text)['newslist'][0]content2 = json.loads(res.text)['newslist'][1]weatherToday = {'area':city,'day':content1['week'],'temperature':content1['lowest']+'到'+content1['highest'],'天气':content1['weather'],'tips':content1['tips']}weatherTomorrow = {'area': city, 'day': content2['week'], 'temperature': content2['lowest'] + '到' + content2['highest'],'天气': content2['weather'], 'tips': content2['tips']}weatherInfo = '<天气预报>:\n' + '今天是'+weatherToday['day'] + ',气温范围:' + weatherToday['temperature'] + ',系统提醒您:' + weatherToday['tips'] \+ '\n明天是'+weatherTomorrow['day'] + ',气温范围:' + weatherTomorrow['temperature'] + ',系统提醒您:' + weatherTomorrow['tips']return weatherInfo# 经典对联
def classicCouplet():url = 'http://api.tianapi.com/txapi/duilian/index?key=填入自己的申请key'data = {'key':填入自己的申请key}res = requests.get(url=url,params=data)content = json.loads(res.text)['newslist'][0]['content']return content# 十万个为什么
def whyAndWhy():url = 'http://api.tianapi.com/txapi/tenwhy/index?key=填入自己的申请key'res = requests.get(url)title = json.loads(res.text)['newslist'][0]['title']answer = json.loads(res.text)['newslist'][0]['content']content = {'title':title,'answer':answer}return contentdef main():date= time.strftime("%Y-%m-%d")# print(date)# 这里加延时是为了让系统识别为三次不同的请求whyAndWhy1 = whyAndWhy()time.sleep(1)whyAndWhy2 = whyAndWhy()time.sleep(1)whyAndWhy3 = whyAndWhy()contents = '今天是公元 ' + date + ',系统给您的播报内容如下:\n\n' + dailyQuotes() +'\n'+ weatherApi()+'\n\n<经典对联>:\n' \'' + classicCouplet() + '\n\n<十万个为什么1>:\n' + whyAndWhy1['title'] + '\n' + whyAndWhy1['answer'] + \'\n<十万个为什么2>:\n' + whyAndWhy2['title'] + '\n' + whyAndWhy2['answer'] + \'\n<十万个为什么3>:\n' + whyAndWhy3['title'] + '\n' + whyAndWhy3['answer']print(contents)return contentsmain()

使用smtp协议给qq邮箱发邮件,内容是上面爬虫程序获取到的数据, 导入模块 from content import main,调用mian()函数的返回值就是整理好的正文内容。

sendmail.py


# coding=utf-8
import smtplib
from email.mime.text import MIMEText
from content import mainmsg_from = 'xxxxxxxxxx@qq.com'  # 发送方邮箱
passwd = 'xxxxxxxxxxx'  # 填入发送方邮箱的授权码
msg_to = 'xxxxxxxxxx@qq.com'  # 收件人邮箱subject = "系统今日份播报"  # 主题
content = main()  # 正文是main()函数的返回值
msg = MIMEText(content)
msg['Subject'] = subject
msg['From'] = msg_from
msg['To'] = msg_to
try:s = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 邮件服务器及端口号s.login(msg_from, passwd)s.sendmail(msg_from, msg_to, msg.as_string())print("发送成功")
except :print("发送失败")
finally:s.quit()

自动发邮件

如何让系统自动发邮件可以在电脑中进行设置,具体可以百度windows如何自动执行python文件

设置好了大概就是下面这样,可以设置触发器发送定时邮件,不过这种方法不理想,电脑不可能24小时开机(除非你用的云服务器),所以我改成了开机启动时发送,我想大家每天应该都会使用到电脑,这样就可以自动每天推送信息啦。

总结

这个程序使用到了python的爬虫库requests,解析库beatifulsoup,还有smtp协议,也学会了如何调用网络上各种付费免费的api。

python自动发QQ邮箱小程序相关推荐

  1. python自动登录qq邮箱_selenium+python实现自动登陆QQ邮箱并发送邮件功能

    本期做一个selenium详细实例,会把我在元素定位中遇到的一些阻塞和经验分享给大家. (浏览器为Chrome) (如果只需要最终的完整代码,请直接跳转到文章最后) 浏览器打开QQ邮箱登录网址 fro ...

  2. python期末大作业 邮箱小程序

    python天气预报语音播报邮箱小工具(期末大作业之我爱python) 实现功能: 生成一个自动化发邮箱的小程序,每天给女朋友or暗恋的小姑娘发天气预报 用来逗女朋友开心~~ 话不多说,直接先上代码! ...

  3. python自动登录qq邮箱_python实现自动登录qq邮箱,写邮件并发送

    1 编程语言 python 3.5 2 需要安装xlrd库,用来打开Excel文件 3 在命令行中输入 python send.py [接收者邮件地址]   如:python send.py 1234 ...

  4. python基础编程:selenium+python实现自动登陆QQ邮箱并发送邮件功能

    本期做一个selenium详细实例,会把我在元素定位中遇到的一些阻塞和经验分享给大家. (浏览器为Chrome) (如果只需要最终的完整代码,请直接跳转到文章最后) 浏览器打开QQ邮箱登录网址 QQ邮 ...

  5. python软件代码示例-用Python写一个模拟qq聊天小程序的代码实例

    Python 超简单的聊天程序 客户端: import socket, sys host = '10.248.27.23' # host = raw_input("Plz imput des ...

  6. python发送邮件 python发送qq,163,sohu, xinlang, 126等邮件 python自动发邮件总结及实例说明...

    python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块主要负责构造邮件. sm ...

  7. 能不能用python开发qq_用Python写一个模拟qq聊天小程序的代码实例

    用Python写一个模拟qq聊天小程序的代码实例 发布时间:2020-09-09 07:49:29

  8. python加油代码_python入门教程NO.5 用python写个自动选择加油站的小程序

    本文涉及的python基础语法为:if条件分支 Python条件分支是通过一条或者多条语句的执行结果True或者False来决定是否执行相应的代码块. if单向条件语法结构 if 判断条件: 代码块 ...

  9. Python入门教程NO.5 用python写个自动选择加油站的小程序

    本文涉及的 python 基础语法为:if 条件分支 Python 条件分支是通过一条或者多条语句的执行结果 True或者 False来决定是否执行相应的代码块. if 单向条件语法结构 if 单向条 ...

最新文章

  1. googleapiclient.discovery
  2. python训练营免费领取-马哥教育官网-专业Linux培训班,Python培训机构
  3. 设置最小值_AI基础教程62:使用文字菜单编辑文字(四)标点挤压设置
  4. 【转】自旋锁及其衍生锁
  5. Thymeleaf——访问静态资源(static)解决方案
  6. yolov4论文_YOLOv4论文详细解读
  7. 武大计算机学院八零后博导张翔,走近名校新生状元 武大张翔:学贵有恒
  8. java编程能做什么_学习Java编程能做什么工作?
  9. transformer论文解读_【论文解读】ICLR2020 | 深度自适应Transformer
  10. 腾讯微博——点击按钮自动加关注代码
  11. java大致了解_学习Java第一天,大致了解
  12. 手机淘汰了多少机器,你怎么看?
  13. Python 汉字转拼音的库--- PyPinyin
  14. matlab 将路径靠左,latex 图片位置靠左
  15. java成员变量的调用_java中对象调用成员变量与成员的方法介绍
  16. 登康口腔冲刺上市:销售费用远高于研发,旗下品牌包括冷酸灵等
  17. win8虚拟机_VMware 15虚拟机VM软件安装教程
  18. viewBag和viewData区别
  19. play_framework框架--教程(一)
  20. 苹果xsmax怎么开机_苹果XSMAX手机进水不开机怎么办?看小伙如何完美修复!

热门文章

  1. 【Echart】echart 入门
  2. srand函数--为rand函数设置伪随机数起点
  3. informer源码注释详情记录
  4. 第三章——stm32f103zet6点亮LED
  5. Same Remainder(翻译)
  6. CrashRpt.dll用来在应用程序出现异常crash
  7. Navicat!OceanBase社区版新朋友来啦!
  8. /etc/apache2/sites-available/yilan8
  9. 安卓学习日记——ShareSDK
  10. 程序员真是太太太太太有趣了!!!