找回密码
 register

QQ登录

只需一步,快速开始

查看: 992|回复: 0

[游戏教程] 查询天气预报并发送到指定的邮箱内

[复制链接]

[游戏教程] 查询天气预报并发送到指定的邮箱内

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:94
  • 打卡月天数:17
  • 打卡总奖励:94
  • 最近打卡:2025-01-18 01:28:20
Waylee

主题

0

回帖

1万

积分

仙帝

积分
11931
Waylee 2021-4-10 22:40 | 显示全部楼层 |阅读模式

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×
安装第三方模块:


任务中需要使用requests库中的某些方法帮助我们完成目标网站的访问请求。命令行窗口中输入pip install requests指令
pip install requests
如果需要指定python版本运行pip 使用:

python3.9 -m pip install requests

进入Python解释器环境,输入如下代码:
data = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=北京')



数据结构整理如下图:

202101141722009818.png


我们经常会输出类似"今日XX天气:XX,温度:XX~XX"之类的文本,而XX的内容是根据变量的变化而改变的,所以我们需要一种可以将变量和字符串结合输出的方式,这种方法称作格式化字符串。

在Python中格式化字符串的方法是使用format()方法,先在需要格式化的字符串内部用大括号{}在需要变量打印的位置占位,之后在字符串后用format(变量1,变量2,变量……)依次替换字符串内的占位符。

  • >>> name = "Tom"
  • >>> type = "晴"
  • >>> print("Hello {},今日天气 {}。".format(name,type))
  • 输出结果:Hello Tom,今日天气 晴。


自动化邮箱配置:

电子邮件是非常自由且通用的联系方式之一,不用及时回复,记录可以保存,有空查看和回复即可。

使用Python发送邮件,也是非常便利,常用于程序的运行结果上报等。

首先介绍一下所使用的库:yagmail
安装命令:pip install yagmail

虽然Python官方内置了邮件相关库,但是使用起来,不方便理解,且代码量很大。所用yagmail,简单、易用、容易书写和管理。

请在命令行窗口中输入pip install yagmail指令,安装yagmail模块:

 [csdn ~]$ pip install yagmail

任务使用的邮箱是QQ邮箱,请大家保证自己都有一个在用的QQ邮箱。

首先需要去配置一下QQ邮箱的配置,如下图:
第一步:点击页面上方 设置——在邮箱设置中找到账户选项

第二步:页面下拉至POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

确保你邮箱账号的 POP3/SMTP 服务已启动。


邮箱发送天气预报:

第一步:导入库,然后初始化对象,如下:

 

>>> import yagmail

>>> yag = yagmail.SMTP(user='你的QQ邮箱地址@qq.com', password='输入刚刚复制的授权码',host='smtp.qq.com')

第二步:发送邮件,目标是自己,随便写一个标题和内容即可,后续可自行编辑内容,如下:

>>> yag.send(to = '你的QQ邮箱地址@qq.com',subject ='测试邮件标题',contents = "测试邮件内容")

执行完成后,可以去QQ邮箱页面刷新页面,看有没有收到邮件。

注意:

    1.yag.send()内to后的邮箱即为接收邮箱;

    2.subject后的字符为邮箱标题;

    3.contents后的字符为邮件内容。



具体演示代码
python

import requests
import yagmail
#读取天气预报网页信息
data = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=海宁')
weather = data.json()
today_low = weather['data']['forecast'][0]['low'] #最低温
today_high =weather['data']['forecast'][0]['high']#最高温
today_type = weather['data']['forecast'][0]['type'] #天气
yag = yagmail.SMTP(user='hnxq@foxmail.com', password='邮箱密码',host='smtp.qq.com')
tianqi = "今日海宁天气:{},气温:{}~{},感冒多发期,适量补充水分,适当增减衣物。".format(today_type,today_low,today_high)
yag.send(to = '784055837@qq.com',subject ='今日天气预报',contents=[tianqi] )






效果: QQ截图20210411200807.jpg





您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |天天打卡

GMT+8, 2025-1-18 18:17 , Processed in 0.106317 second(s), 8 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表