企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件
前天小编带大家利用Python网络爬虫采集了天气网的实时信息,今天小编带大家更进一步,将采集到的天气信息直接发送到邮箱,带大家一起嗨~~拓展来说,这个功能放在企业级角度来看,只要我们拥有客户的邮箱,之后建立邮箱数据库,然后我们就可以通过网络爬虫将采集到的信息发送给我们的目标用户,而且每天都可以实现定时发送。
对于天气信息,我们采集的目标网站是搜狐天气网,信息内容如下图所示:

搜狐天气网
采集的方式仍然使用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到了嘛?
想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/
企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件的更多相关文章
- 网络爬虫技术实现java依赖库整理输出
网络爬虫技术实现java依赖库整理输出 目录 1 简介... 2 1.1 背景介绍... 2 1.2 现有方法优缺点对比... 2 2 实现方法... 2 ...
- python Cmd实例之网络爬虫应用
python Cmd实例之网络爬虫应用 标签(空格分隔): python Cmd 爬虫 废话少说,直接上代码 # encoding=utf-8 import os import multiproces ...
- 网络爬虫技术Jsoup——爬到一切你想要的(转)
转自:http://blog.csdn.net/ccg_201216323/article/details/53576654 本文由我的微信公众号(bruce常)原创首发, 并同步发表到csdn博客, ...
- Python开发笔记:网络数据抓取
网络数据获取(爬取)分为两部分: 1.抓取(抓取网页) · urlib内建模块,特别是urlib.request · Requests第三方库(中小型网络爬虫的开发) · Scrapy框架(大型网络爬 ...
- python网络爬虫技术图谱
- Python开发基础-Day15正则表达式爬虫应用,configparser模块和subprocess模块
正则表达式爬虫应用(校花网) import requests import re import json #定义函数返回网页的字符串信息 def getPage_str(url): page_stri ...
- Java网络爬虫技术《二》Jsoup
Jsoup 当我们成功抓取到页面数据了之后,还需要对抓取的数据进行解析,而刚好,Jsoup 是一款专门解析 html 页面的技术.Jsoup是一款基于 Java 的HTML 解析器,可直接解析某个 U ...
- python核心编程中网络爬虫的例子
#!/usr/bin/env python import cStringIO # import formatter # from htmllib import HTMLParser # We use ...
- 【python开发】利用PIP3的时候出现的问题Fatal error in launcher: Unable to create process using '"'
down voteaccepted I fixed my issue by... downloading Python 3 at the official website and installing ...
随机推荐
- 【Hadoop离线基础总结】oozie任务串联
目录 需求 1.准备工作目录 2.准备调度文件 3.开发调度的配置文件 4.上传资源文件夹到hdfs对应路径 5.执行调度任务 需求 执行shell脚本 → 执行MR程序 → 执行hive程序 1.准 ...
- JS防抖和节流:原来如此简单
一.函数防抖 前端开发工作中,我们经常在一个事件发生后执行某个操作,比如鼠标移动时打印一些东西: window.addEventListener("mousemove", ()=& ...
- SpringMvc 你该知道如何在HandlerExceptionResolver中获取Model
在项目开发中,我们通常通过参数的形式注入Model对象,如: @RequestMapping("/demo") public String demo(Model model) { ...
- 黑马程序员_毕向东_Java基础视频教程——进制转换之负数二进制(随笔)
进制转换之负数二进制 负数的二进制表现形式 6 = 110 -6 : 其实就是 6 的二进制取反再 + 1 一个整数在内存中是占 4 个字节 **取反:将二进制里的 1 变成 0,0 变成 1. 以6 ...
- MySQLdb安装记
1 安装 python-devel 2. site.cfg 改mysql_config成实际位置 mysql_config = /mysqldata/mariadb530/bin/mysql_conf ...
- @vue/cli 4.0.5 学习记录
1. Vue CLI (@vue/cli) 是一个全局安装的 npm 包,提供了终端里的 vue 命令.Vue CLI 插件的名字以 @vue/cli-plugin- (内建插件) 或 vue-cli ...
- 关于react的一些总结
之前为了学习redux买了一本<深入浅出react和redux>,只看了redux部分.最近重新一遍,还是很有收获,这里结合阅读文档时的一些理解,记下一些初学者可能不太注意的东西. 原则: ...
- Aangular 父子间组件传递
1.父子间组件传递------重点&难点 Vue.js和Angular中的父子间消息传递原理一样,都可以用口诀: “Props Down,Events Up” 方向1:父 =>子 父组件 ...
- Django之from.Form内置字段
from django import forms Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内 ...
- 流复制-pg_basebackup (有自定义表空间)
一.组成部分 1.walsender进程是用来发送WAL日志记录的 2.walreceiver进程是用来接收WAL日志记录的 3.startup进程是用来apply日志的 二.主库配置 1.授权账号, ...