Python如何自动获取目标网站最新通知


Posted in Python onJune 18, 2020

Python如何自动获取目标网站最新通知

不管是一名学生,亦或是一名员工,我们都需要时刻注意学校或公司网站的通知,尽量做到即时获取最新消息。

大部分博客或数据资源网站都会有自己的RSS提示系统,便于将网站的最新信息及时推送给需要的用户,而用户也可以通过RSS阅读器来即时地获取到目标网站的最新内容。

由于学校或公司网站服务对象的特殊性和局限性,一般不会建立自己的RSS系统。

作为优秀的人儿,我们可以建立自己的RSS提示系统。

这里介绍了如何使用Python和常用的计算机小程序来构建一个RSS提示系统,做到定时自动检测目标网站发布的通知,并即时发送提示邮件。

本期文章设计RSS提示系统的主要思路是:

  • 爬取目标网站内容,建立本地已有通知数据库;
  • 模拟smtp服务器,建立邮件发送系统;
  • 解析检测目标网站发布的通知,若有新内容,则更新数据库并发送提示邮件;
  • 制定计划任务实现定时自动执行Python脚本程序。

1.建立通知数据库

这一步的目的是爬取目标网站已经发布的通知的数据,并进行存储,从而建立与该目标网站内容相对应的本地数据库。

考虑到数据库中的数据将是辨别和获取一则新通知的唯一方法,因此所建立的数据库将存储每一条通知的标题、发布日期和访问链接。

第一步使用到的模块有urllib、BeautifulSoup和sqlite3模块。其中,通过urllib模块爬取目标网页html数据;通过BeautifulSoup模块解析网页数据、爬取网页内容;通过sqlite3模块建立目标网站已有通知数据库。

该步主要代码展示如下。

Python如何自动获取目标网站最新通知

2.建立邮件发送系统

这一步的目的是使用Python标准库模块smtplib来访问网络,创建一个发送电子邮件的功能。

由于我们大部分人的计算机并没有建立自己的邮件服务器,因此需借助第三方服务器来模拟邮件发送。

常用的有谷歌邮件系统、网易邮件系统和QQ邮件系统,如QQ邮件系统的SMTP服务器和端口号分别为smtp.qq.com和465。

该步主要代码展示如下。

Python如何自动获取目标网站最新通知

在这个示例中,使用了Python标准库中的email模块将电子邮件信息进行了格式化,主要包括邮件的主题与发件人、收件人邮箱昵称和邮件内容等信息。

3.解析检测目标网站通知

前面两步,已经完成了目标网站已有通知数据库和邮件发送系统的建立,第三步要完成的工作,主要由两部分组成。

一是,利用第一步使用的urllib、BeautifulSoup模块解析目标网站内容数据,并与前面建立的数据库进行对比检测。

二是,若检测到目标网站有新的通知,则将新通知数据插入到数据库中,然后,发送提示电子邮件。

该步主要代码展示如下。

在这个示例中,只选取了最新的一条通知发送了电子邮件提示,具体邮件信息可自己设定。

Python如何自动获取目标网站最新通知

4.制定计划任务

前面三步,已经完成了使用Python获取目标网站最新通知,并发送提示电子邮件的脚本程序。

在这一步,将使用Windows自带的DOS命令框架和任务计划程序去每小时自动运行一次Python脚本,实现自动更新通知的目的。

首先,需要编写一个cmd命令文件,方便在DOS框架下执行Python脚本。

主要代码展示如下:

@echo off # 关闭回显
cd C:\demo # 找到Python脚本文件的路径
python Python.py # 执行Python脚本文件

最后,使用任务计划程序制定一个任务,可设定为每隔一小时自动运行一次cmd命令文件。

Python如何自动获取目标网站最新通知

总结

到此这篇关于Python如何自动获取目标网站最新通知的文章就介绍到这了,更多相关python自动获取最新通知内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中bisect的用法
Sep 23 Python
Python中函数的参数传递与可变长参数介绍
Jun 30 Python
python实现下载文件的三种方法
Feb 09 Python
Python实现感知机(PLA)算法
Dec 20 Python
django orm 通过related_name反向查询的方法
Dec 15 Python
python开发游戏的前期准备
May 05 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
Mar 06 Python
python网络编程之五子棋游戏
May 14 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
Anaconda详细安装步骤图文教程
Nov 12 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 #Python
python实现在线翻译
Jun 18 #Python
Python函数的迭代器与生成器的示例代码
Jun 18 #Python
使用python实现名片管理系统
Jun 18 #Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
Jun 18 #Python
浅谈keras.callbacks设置模型保存策略
Jun 18 #Python
用python实现名片管理系统
Jun 18 #Python
You might like
用libTemplate实现静态网页的生成
2006/10/09 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
判断js数据类型的函数实例详解
2019/05/23 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
详解Python中的动态属性和特性
2018/04/07 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
String是最基本的数据类型吗?
2013/06/13 面试题
《我为你骄傲》教学反思
2014/02/20 职场文书
毕业生自荐信格式
2014/03/07 职场文书
旅游管理毕业生自荐信范文
2014/03/19 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
小组名称和口号
2014/06/09 职场文书
运动会开幕式致辞
2015/07/29 职场文书
mysql知识点整理
2021/04/05 MySQL