前段时间看到了这个博客。
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教程项目可拿,不懂的问题有老司机解决哦,一起相互监督共同进步

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

Python简单程序爬取天气信息,定时发邮件给朋友【高薪必学】的更多相关文章

  1. [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】

    [python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...

  2. Python脚本:爬取天气数据并发邮件给心爱的Ta

    第一部分:爬取天气数据 # 在函数调用 get_weather(url = 'https://www.tianqi.com/foshan') 的 url中更改城市,foshan为佛山市 1 impor ...

  3. python学习之——爬取网页信息

    爬取网页信息 说明:正则表达式有待学习,之后完善此功能 #encoding=utf-8 import urllib import re import os #获取网络数据到指定文件 def getHt ...

  4. 【Python3 爬虫】17_爬取天气信息

    需求说明 到网站http://lishi.tianqi.com/kunming/201802.html可以看到昆明2018年2月份的天气信息,然后将数据存储到数据库. 实现代码 #-*-coding: ...

  5. python简单爬虫爬取百度百科python词条网页

    目标分析:目标:百度百科python词条相关词条网页 - 标题和简介 入口页:https://baike.baidu.com/item/Python/407313 URL格式: - 词条页面URL:/ ...

  6. Python简单爬取图书信息及入库

    课堂上老师布置了一个作业,如下图所示: 就是简单写一个借书系统. 大概想了一下流程,登录-->验证登录信息-->登录成功跳转借书界面-->可查看自己的借阅书籍以及数量... 登录可以 ...

  7. Python爬取招聘信息,并且存储到MySQL数据库中

    前面一篇文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为前一天的,同时将爬取的内容保存到数据库中:这篇文章主要讲述如何将python文件压缩成exe可执行文件,供后面的操作. 这系列文章 ...

  8. [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

    转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...

  9. Python爬虫之selenium爬虫,模拟浏览器爬取天猫信息

    由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...

随机推荐

  1. angular常用命令整理

    1.创建项目 ng new 命令 描述ng new <project-name> [options] 创建一个新的 Angular 项目,默认在当前所在目录下参数 描述--dry-run  ...

  2. Shiro入门学习之自定义Realm实现认证(四)

    一.概述 Shirom默认使用自带的IniRealm,IniRealm从ini配置文件中读取用户的信息,而大部分情况下需要从系统数据库中读取用户信息,所以需要实现自定义Realm,Realm接口如下: ...

  3. 实现一个简易的Unity网络同步引擎——netgo

    实现一个简易的Unity网络同步引擎Netgo 目前GOLANG有大行其道的趋势,尤其是在网络编程方面.因为和c/c++比较起来,虽然GC占用了一部分机器性能,但是出错概率小了,开发效率大大提升,而且 ...

  4. 使用python实现归并排序、快速排序、堆排序

    归并排序 使用分治法:分而治之 分: 递归地拆分数组,直到它被分成两对单个元素数组为止. 然后,将这些单个元素中的每一个与它的对合并,然后将这些对与它们的对等合并,直到整个列表按照排序顺序合并为止. ...

  5. 【代码学习】PYTHON 抛出异常

    class ShortInputException(Exception): '''你定义的异常类.''' def __init__(self, length, atleast): Exception. ...

  6. springmvc中整合mongodb副本集配置文件

    配置文件jdbc.properties: mongo.hostport=192.168.100.100:28007,192.168.100.110:28008,192.168.100.120:2800 ...

  7. JS打开浏览器新窗口

    window.open(URL,name,features,replace); 参数 描述 URL 一个可选的字符串,声明了要在新窗口中显示的文档的 URL.如果省略了这个参数,或者它的值是空字符串, ...

  8. 请高手解释这个C#程序,其中ServiceBase是windows服务基类,SmsService是

    请高手解释这个C#程序,其中ServiceBase是windows服务基类,SmsService是 ServiceBase的子类. static void Main() { ServiceBase[] ...

  9. [经验] 如何在虚拟机上安装 CentOS

    环境配置 虚拟机 vmware 15.5 Pro 操作系统 CentOS-7-x86_64-DVD-1908.iso 第一步: 在虚拟机上打开操作系统的镜像文件并配置硬件信息 这里的操作就是一本道  ...

  10. 使用maven搭建web项目

    在pom.xml中添加java ee相关的三个依赖包:<scope> jar的有效范围 provided 表示编译期生效,不会打包发布到 tomcat 中 <properties&g ...