前段时间看到了这个博客。
https://blog.csdn.net/weixin_45081575/article/details/102886718。
他用了request模块,这不巧了么,正好我刚用过。
他有了smtp模块,这不巧了么,正好我刚用过。
定时发送邮件,这不巧了么,我不会 。
PS:另外很多人在学习Python的过程中,往往因为没有好的教程或者没人指导从而导致自己容易放弃,为此我建了个Python全栈开发交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题有老司机解决哦,一起相互监督共同进步

整体思路:
Python语言封装了很多模块帮助你进行通信,所以写起来相对简单。、

1、https://dev.heweather.com/docs/api/weather和风天气提供了获取天气信息的接口,通过url请求得到json格式的数据。具体用法可以查看链接的api开发文档。
比如我要获得郑州此时的天气信息,请求方式如下:

https://free-api.heweather.net/s6/weather/now?location=zhengzhou&key=8a92371afde5490c9ecf3e9346ff189a

# 得到数据
def get_sky():
url='https://free-api.heweather.net/s6/weather/now?location=zhengzhou&key=8a92371afde5490c9ecf3e9346ff189a'
r=requests.get(url)
now=json.loads(r.text)
# print(now)

a=now['HeWeather6'][0]['basic']
b=now['HeWeather6'][0]['now']
stat=''
stat+="省份:%s<br>"%a['admin_area']
stat+='城市:%s<br>'%(a['location'])
stat+='云量: %s<br>'%(b['cloud'])
stat+='能见度: %s℃<br>'%(b['vis'])
stat+='体感温度: %s℃<br>'%(b['fl'])
stat+='温度: %s<br>'%(b['tmp'])
stat+='风力: %s<br>'%(b['wind_sc'])
stat+='风向: %s<br>'%(b['wind_dir'])

return stat
通过text请求得到页面信息之后,根据返回的json格式解析出每个对应的信息。

2、利用smtp模块发送邮件,这里弄的比较简单,没有上面那个博客中用到csv文件,他添加了附件,又调用了别的对邮件封装添加附件的函数。这里只用了简单的传字符串。

# 邮件传输
def smtp_tran(data):
print(data)
msg=MIMEText(data,'html','utf-8')
HOST='smtp.qq.com'
SUBJECT='大哥你的天气情况到了'
FROM='你的qq@qq.com'
TO='你的qq@qq.com'
msg['Subject']=SUBJECT
msg['From']=FROM
msg['To']=TO
server=smtplib.SMTP(HOST,25)
server.set_debuglevel(1) #打印出传递过程
server.login(FROM,'授权码') #这里填写你邮箱的授权码
server.sendmail(FROM,[TO],msg.as_string())
server.quit()
利用smtp模块封装好的函数就行,直接调用。值得注意的一点是,163,qq等smtp服务需要授权码而不是密码,授权码是什么可以百度。

3、完整代码

# 用提供好的api爬取天气数据,然后发送给邮箱
import requests
import json
from email.mime.text import MIMEText
import smtplib
# 得到数据
def get_sky():
url='https://free-api.heweather.net/s6/weather/now?location=zhengzhou&key=8a92371afde5490c9ecf3e9346ff189a'
r=requests.get(url)
now=json.loads(r.text)
# print(now)
a=now['HeWeather6'][0]['basic']
b=now['HeWeather6'][0]['now']
stat=''
stat+="省份:%s<br>"%a['admin_area']
stat+='城市:%s<br>'%(a['location'])
stat+='云量: %s<br>'%(b['cloud'])
stat+='能见度: %s<br>'%(b['vis'])
stat+='体感温度: %s℃<br>'%(b['fl'])
stat+='温度: %s℃<br>'%(b['tmp'])
stat+='风力: %s<br>'%(b['wind_sc'])
stat+='风向: %s<br>'%(b['wind_dir'])

return stat

# 邮件传输
def smtp_tran(data):
print(data)
msg=MIMEText(data,'html','utf-8')
HOST='smtp.qq.com'
SUBJECT='大哥你的天气情况到了'
FROM='qq@qq.com'
TO='qq@qq.com'
msg['Subject']=SUBJECT
msg['From']=FROM
msg['To']=TO
server=smtplib.SMTP(HOST,25)
server.set_debuglevel(1)
server.login(FROM,'yqqrkjmvsiffeaha')
server.sendmail(FROM,[TO],msg.as_string())
server.quit()
smtp_tran(get_sky())
# print(get_sky(),end='')

[To]里面可填写多个邮箱,同时发送多个邮件。

4、此时可以运行发送邮件了,定时发送的思路就是建立个批处理文件,把运行这个代码的语句放进去,每次运行这个批处理文件就等于运行了这个文件。

批处理文件就是存一堆命令的文件。
打开任务计划,然后创建任务,定义操作是运行这个批处理文件,触发器是每天早上八点,当然要保证电脑开着。这种方法是Windows的。
如图所示:

如下建立好的:

5、Finally,每天早上八点起得来的话,会发的。
——另外很多人在学习Python的过程中,往往因为没有好的教程或者没人指导从而导致自己容易放弃,为此我建了个Python全栈开发交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题有老司机解决哦,一起相互监督共同进步

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

最新文章

  1. python实现网络爬虫下载天涯论坛帖子
  2. 利用Java动态生成 PDF 文档
  3. [转]ExtJs入门之filefield:文件上传的配置+结合Ajax完美实现文件上传的asp.net示例
  4. Array.splice()理解记忆
  5. VS 2013 中如何自定义代码片段
  6. javascript基础(1)
  7. android logcat里面AndroidRuntime FATAL EXCEPTION: main这个是什么问题啊。
  8. Git教程之撤销修改(7)
  9. (转)SVN详解
  10. mysql 备份和恢复的两条命令
  11. DB Query Analyzer 5.05 is released, 65 articles concerned have been published
  12. tcc分布式事务框架解析
  13. mysql 在linux下的启动
  14. POJ 1995 Raising Modulo Numbers (快速幂)
  15. LeetCode 11 - 盛最多水的容器 - [双指针暴力]
  16. Linux修改hostname时/etc/hosts、/etc/sysconfig/network ,hostname,三者的区别和联系
  17. Android-消息处理学习总结(Handler,Looper)
  18. React事件传递参数
  19. Codeforces.724G.Xor-matic Number of the Graph(线性基)
  20. 漫谈单点登录(SSO)(淘宝天猫)(转载)

热门文章

  1. opencv python:图像金字塔
  2. Netty Learning Notes
  3. tkinter学习(4)frame、pack、canvas学习
  4. Android日常debug
  5. 7,请描述下cookies,sessionStorage和localStorage的区别
  6. SpringCloud全家桶学习之服务注册与发现及Eureka高可用集群搭建(二)
  7. Windows10下修改pip源
  8. redhat7.6 配置主从DNS
  9. HIS读书笔记
  10. Maven中配置jdk的版本