整体思路:

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

1、https://dev.heweather.com/docs/api/weather和风天气提供了获取天气信息的接口,通过url请求得到json格式的数据。

比如我要获得郑州此时的天气信息,请求方式如下:

# 得到数据

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
"%a['admin_area']

stat+='城市:%s
'%(a['location'])

stat+='云量: %s
'%(b['cloud'])

stat+='能见度: %s℃
'%(b['vis'])

stat+='体感温度: %s℃
'%(b['fl'])

stat+='温度: %s
'%(b['tmp'])

stat+='风力: %s
'%(b['wind_sc'])

stat+='风向: %s
'%(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
"%a['admin_area']

stat+='城市:%s
'%(a['location'])

stat+='云量: %s
'%(b['cloud'])

stat+='能见度: %s
'%(b['vis'])

stat+='体感温度: %s℃
'%(b['fl'])

stat+='温度: %s℃
'%(b['tmp'])

stat+='风力: %s
'%(b['wind_sc'])

stat+='风向: %s
'%(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,每天早上八点起得来的话,会发的。

山东掌趣网络科技

通过json发送html代码_Python简单程序爬取天气信息,定时以邮件发送给朋友相关推荐

  1. [python应用案例] 一.BeautifulSoup爬取天气信息并发送至QQ邮箱

    前面作者写了很多Python系列文章,包括: Python基础知识系列:Python基础知识学习与提升 Python网络爬虫系列:Python爬虫之Selenium+Phantomjs+CasperJ ...

  2. python简单程序爬取酷我音乐歌曲信息

    程序自动过滤掉<歌手(artist)>部分字符串长度大于6字节的数据,使后期的表格更美观 而导致筛选后没有30条数据 程序--down_music--方法中:  header部分得自己加上 ...

  3. python刷新页面_Python模拟浏览器爬取天猫信息

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

  4. python爬虫爬取图片代码_python爬虫实战 爬取天极图片

    学习爬虫个人的意见是直接实战效果会很好 不要等全学完requests ,正则表达式,BeautifulSoup等再来实际操作.其实很多实战我们并不会用到requests库,BeautifulSoup, ...

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

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

  6. python 语音播报库_Python爬取天气信息并语音播报

    导读 爬虫是爬取网页的相关内容,了解HTML能够帮助你更好的理解网页的结构.内容等. TCP/IP协议,HTTP协议这些知识了解一下就可以,能够让你了解在网络请求和网络传输上的基本原理,这次的小案例用 ...

  7. Python爬取天气信息并定时发送给微信好友(异地恋神器)!!

    效果 前言 中国天气网: http://www.weather.com.cn/ 点击右上角的具体的天气数据 想获取哪个城市的天气,就搜索城市进行切换 这里以青岛为例 可以看到此时url为: http: ...

  8. 定时爬取下厨房菜谱并邮件发送

    import requests import smtplib import schedule import time from bs4 import BeautifulSoup from email. ...

  9. Python 爬取网页信息并保存到本地爬虫爬取网页第一步【简单易懂,注释超级全,代码可以直接运行】

    Python 爬取网页信息并保存到本地[简单易懂,代码可以直接运行] 功能:给出一个关键词,根据关键词爬取程序,这是爬虫爬取网页的第一步 步骤: 1.确定url 2.确定请求头 3.发送请求 4.写入 ...

  10. python爬虫影评_Python爬虫(二十)_动态爬取影评信息

    本案例介绍从JavaScript中采集加载的数据.更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import t ...

最新文章

  1. 在linux下安装配置DNS服务器
  2. [名词解释] intuitive
  3. 吴恩达deeplearning资源汇总帖
  4. (转)交换机攻击方法描述
  5. CF1497C k-LCM
  6. bzoj1036 树的统计Count 树链剖分
  7. 6. php 基本语法
  8. 安徽省计算机水平模拟考试系统,中学信息技术考试练习系统——安徽省版
  9. 替代 NetMeeting 的多人屏幕共享工具 InletexEMC 国外出品,永久免费
  10. html中div中加背景图片,div background css设置div背景图片
  11. 霓虹灯的c语言编写程序,用C语言编写单片机流水灯程序
  12. 手绘漫画学习 素描自学视频
  13. 武林传奇之七剑下天山java游戏开发商_武林传奇之七剑下天山
  14. bam获取序列_bam格式说明
  15. Alist保姆级搭建教程
  16. 多元回归分析(分类与运用)
  17. vivo Z1i的usb调试模式在哪里,打开vivo Z1iusb调试模式的流程
  18. 招商银行信用卡中心笔试编程题 - 小招喵跑步
  19. 可能是全网首个支持阿里云Elasticsearch Xapck鉴权的Skywalking
  20. 网络游戏装备是计算机数据,DNF装备搭配计算器_17173DNF专区_17173.com中国游戏门户站...

热门文章

  1. 2.数据结构 --- 线性表
  2. 1.Kubernetes 简介
  3. 17. 信号量,共享内存和消息队列
  4. 25. PHP 文件处理
  5. 2. HTML DOM Element 对象
  6. html 可换行属性,html里title属性换行的方法
  7. php中的each()用法和list()用法
  8. MVC案例——问题一:多个请求使用一个servlet
  9. String 尺取法
  10. 精通Android【Android移动开发制胜宝典】