前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件

企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件

作者头像
Python进阶者
发布于 2018-12-26 03:02:07
发布于 2018-12-26 03:02:07
6220
举报

前天小编带大家利用Python网络爬虫采集了天气网的实时信息,今天小编带大家更进一步,将采集到的天气信息直接发送到邮箱,带大家一起嗨(PS:结尾有彩蛋,助力你成为头脑王者)~~拓展来说,这个功能放在企业级角度来看,只要我们拥有客户的邮箱,之后建立邮箱数据库,然后我们就可以通过网络爬虫将采集到的信息发送给我们的目标用户,而且每天都可以实现定时发送。

对于天气信息,我们采集的目标网站是搜狐天气网,信息内容如下图所示:

搜狐天气网

采集的方式仍然使用BeautifulSoup选择器,定义get_weather函数,具体代码如下图所示:

定义get_weather函数

采集到的信息内容有:当前城市、天气状态、当前气温、最低温、最高温、空气质量和PM2.5值。在代码块中使用了string属性、字符串格式化和lambda函数等知识点。在使用BS4匹配目标信息时,建议大家逐步进行代码测试,养成良好的习惯,这样不至于写完之后因代码报错而一头雾水。

采集到天气信息之后,接下来要写代码实现邮件的自动发送。定义send_email函数,具体代码如下图所示:

定义send_email函数

确认好对方(或客户群)的邮箱之后,放在列表中,等待被遍历,之后只需要输入本人的邮箱名、登录密码和邮箱服务器,便可以实现信息的自动发送了。本例中,小编以自己的搜狐邮箱为例,目标城市选择小编所在的城市大连,程序运行之后,将得到以下的效果图:

效果图

尔后登录自己的搜狐邮箱,然后就可以看到一封天气预报的邮件已经在自己的未读邮件中了,打开邮件信息,如下图所示:

搜狐邮箱收件箱

可以很明显的看到邮件内容和采集到的信息是完全一致的。这样就可以实现邮件的一键收发啦~~~

那么是不是只有搜狐邮箱才可以实现邮件发送呢?当然不是啦,163网易邮箱照样可以,只需要更改邮箱服务器就可以了,效果图如下所示:

发送信息到网易163邮箱

点开邮件查看邮件内容,如下图:

网易163邮箱收件箱

同搜狐邮箱一样,接受到的邮件内容和采集到的信息是完全一致滴。

最后安利一下小伙伴们邮箱服务器和PM2.5的标准。

一、部分常用邮箱服务器汇总:

腾讯QQ邮箱发送服务器:smtp.qq.com

网易126邮箱发送服务器:smtp.126.com

网易163邮箱发送服务器:smtp.163.com

新浪免费邮箱发送服务器:smtp.sina.com.cn

搜狐邮箱发送服务器:smtp.sohu.com

雅虎邮箱发送服务器:smtp.mail.yahoo.com

Gmail邮箱发送服务器:smtp.gmail.com

二、PM2.5值的参考值

空气质量等级 24小时PM2.5平均值标准值

优 35微克(ug)/每立方

良 35~75微克(ug)/每立方

轻度污染 75~115微克(ug)/每立方

中度污染 115~150微克(ug)/每立方

重度污染 150~250微克(ug)/每立方

严重污染 250及以上微克(ug)/每立方

从采集结果来看,大连的天气PM2.5的值为110微克,属于轻度污染的范围。

利用网络爬虫技术实现自动发送天气预告邮件,你get到了嘛?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与数据挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
MySQL基础之数据的增删改
1.修改单表的记录 案例1:修改beauty表中姓唐的女神的电话为13899888899
yuanshuai
2022/08/22
2870
『数据库』朴实无华的数据库多表查询,连接查询、笛卡尔积
(会用到连接运算,固定写法,连接运算在下面不用着急看) 先假设两张表: Table NSA1:
风骨散人Chiam
2020/10/28
5740
最新955不加班名单
一个拥有 33.8k star 数的项目,点进去一看,居然没有任何代码,这个 955.WLB 项目究竟拥有什么魔力?
SQL数据库开发
2024/04/25
1600
最新955不加班名单
SQL基本语法入门 看这里就够了
out_increment表示当前列为自动增长列,由DBMS分配该列的值,可以保证不重复
全栈程序员站长
2022/09/03
5250
【JavaWeb】61:数据记录基本操作
一直听人说,程序员面试,面试官喜欢聊底层原理,聊数据结构与算法,聊多线程与高并发。
刘小爱
2020/07/30
6350
【JavaWeb】61:数据记录基本操作
【MySQL探索之旅】MySQL数据表的增删查改——约束
对于整数类型的主键,常配搭自增长 auto_increment来使用。插入数据对应字段不给值时,使用最大 值 +1 ,而不是前一条记录 +1。
爱敲代码的小杨.
2024/05/07
1250
【MySQL探索之旅】MySQL数据表的增删查改——约束
sql查询重复记录、删除重复记录具体方法
本篇文章重点为大家讲解一下sql查询重复记录、删除重复记录具体方法,有需要的小伙伴可以参考一下。
会长君
2023/04/25
4.2K0
104-oracle大表删除重复记录的几种方法
如果是小表,随便怎么折腾都行; 如果是大表(至少1千万条记录以上,或者占用10G以上空间), 我们可能需要想办法加快这个速度 , 这时可以参考下面方法:
老虎刘
2023/09/01
7520
104-oracle大表删除重复记录的几种方法
SQLserver数据库创表、操作表以及存储过程、游标等操作
--创建数据库表以及插入数据 15:40:34 USE master go if exists(select * from sysdatabases where name='EmployeeSys') drop database EmployeeSys go CREATE DATABASE EmployeeSys ON ( NAME = ' EmployeeSys_data', --主数据文件的逻辑名 FILENAME = 'D:
小语雀网
2022/05/06
7740
mysql删除重复记录只保留一条
查询出所有重复记录 select 字段名,字段名 from 表名 where 重复字段名 in (select 重复字段名  from 表名 group by 重复字段名  having count(1) >= 2) ORDER BY  重复字段名 查询出所有重复记录并且删除多余的只保留一条 delete from 表名 where  重复字段名 in ( SELECT a.重复字段名from( select 重复字段名 from 表名 group by 重复字段名 having count(1
仙士可
2019/12/18
3.2K0
【MySql】表的约束
真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。表中一定要有各种约束,通过约束,让我们未来插入数据库表中的数据是符合预期的。约束的本质是通过技术收到逼迫程序员插入正确的数据,反过来,站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。约束的最终目标:保证数据的完整性和可预期性所以需要更多的约束。 表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primarykey,auto_increment,unique key 。
平凡的人1
2023/10/15
3250
【MySql】表的约束
Mysql基础知识合集(精美)
还有一堆哈 。先用先查就好(现) 比如month addtime。。。。。
编程张无忌
2021/01/26
8660
Mysql基础知识合集(精美)
pgsql数据库恢复_oracle多字段去重
今天主要介绍一下Oracle、MySQL、sqlserver、pg数据库在删除重复数据时是怎么实现的。这里用实例来说明。
全栈程序员站长
2022/11/15
1.6K0
pgsql数据库恢复_oracle多字段去重
【MYSQL分组查询前1或者前几名排名】
测试库表: CREATE TABLE test(NAME VARCHAR(10),val INT,memo VARCHAR(20)); INSERT INTO test VALUES('a', 2, 'a2--a的第二个值') ; INSERT INTO test VALUES('a', 1, 'a1--a的第一个值') ; INSERT INTO test VALUES('a', 3, 'a3--a的第三个值') ; INSERT INTO test VALUES('b', 1, 'b1--b的第一个
用户5640963
2019/07/25
2.3K0
Mysql查询事例1
id  INT(10)  NOT NULL  UNIQUE  PRIMARY KEY  ,
Java架构师历程
2018/09/26
6940
Hive-1.2.1_05_案例操作
1. 建库建表 1 # 建库 2 create database exercise; 3 # 建表 4 create table student(Sno int,Sname string,Sex string,Sage int,Sdept string) 5 row format delimited fields terminated by ','; 6 7 create table course(Cno int,Cname string) 8 row format delimite
踏歌行
2020/10/15
4490
删除表中重复数据「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/105915.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/09
1K0
有意思的一行SQL代码
逛公众号的时候看到了一篇有意思的技术文章----一行SQl代码能做什么? 在此记录一下,尊重原创,故:
cultureSun
2023/05/18
2710
有意思的一行SQL代码
sql删除重复记录
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
王念博客
2019/07/24
2.3K0
SQL 删除重复记录,只保留一条记录
删除表中多余的重复记录,重复记录是根据单个字段(id)来判断,只留有rowid最小的记录 
用户8099761
2023/05/10
1.2K0
相关推荐
MySQL基础之数据的增删改
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档