zoukankan      html  css  js  c++  java
  • 企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件

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

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

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

    搜狐天气网

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

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

    定义get_weather函数

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

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

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

    定义send_email函数

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

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

    效果图

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

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

    搜狐邮箱收件箱

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

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

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

    发送信息到网易163邮箱

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

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

    网易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到了嘛?
    想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/

  • 相关阅读:
    [Unity] 如何通过 C# 代码控制角色动画的播放
    [Unity] Unity粒子系统报错: Ensure Read/Write is enabled on the Particle System's Texture.
    [Unity] Shader Graph Error 当前渲染管道与此主节点不兼容(The current render pipeline is not compatible with this master node)
    [运维] 请求 nginx 出现 502 Bad Gateway 的解决方案!
    [排错] SpringBoot 警告 Could not find acceptable representation
    [理解] C++ 中的 源文件 和 头文件
    [经验] 如何将 Java 项目发布到云服务器上并可以访问
    均衡与竞争
    指数退避算法
    判断两个多项式是否为同一个方程
  • 原文地址:https://www.cnblogs.com/dcpeng/p/13041777.html
Copyright © 2011-2022 走看看