Python如何自动获取目标网站最新通知
作者:其实还好啦 发布时间:2021-07-14 18:18:16
不管是一名学生,亦或是一名员工,我们都需要时刻注意学校或公司网站的通知,尽量做到即时获取最新消息。
大部分博客或数据资源网站都会有自己的RSS提示系统,便于将网站的最新信息及时推送给需要的用户,而用户也可以通过RSS阅读器来即时地获取到目标网站的最新内容。
由于学校或公司网站服务对象的特殊性和局限性,一般不会建立自己的RSS系统。
作为优秀的人儿,我们可以建立自己的RSS提示系统。
这里介绍了如何使用Python和常用的计算机小程序来构建一个RSS提示系统,做到定时自动检测目标网站发布的通知,并即时发送提示邮件。
本期文章设计RSS提示系统的主要思路是:
爬取目标网站内容,建立本地已有通知数据库;
模拟smtp服务器,建立邮件发送系统;
解析检测目标网站发布的通知,若有新内容,则更新数据库并发送提示邮件;
制定计划任务实现定时自动执行Python脚本程序。
1.建立通知数据库
这一步的目的是爬取目标网站已经发布的通知的数据,并进行存储,从而建立与该目标网站内容相对应的本地数据库。
考虑到数据库中的数据将是辨别和获取一则新通知的唯一方法,因此所建立的数据库将存储每一条通知的标题、发布日期和访问链接。
第一步使用到的模块有urllib、BeautifulSoup和sqlite3模块。其中,通过urllib模块爬取目标网页html数据;通过BeautifulSoup模块解析网页数据、爬取网页内容;通过sqlite3模块建立目标网站已有通知数据库。
该步主要代码展示如下。
2.建立邮件发送系统
这一步的目的是使用Python标准库模块smtplib来访问网络,创建一个发送电子邮件的功能。
由于我们大部分人的计算机并没有建立自己的邮件服务器,因此需借助第三方服务器来模拟邮件发送。
常用的有谷歌邮件系统、网易邮件系统和QQ邮件系统,如QQ邮件系统的SMTP服务器和端口号分别为smtp.qq.com和465。
该步主要代码展示如下。
在这个示例中,使用了Python标准库中的email模块将电子邮件信息进行了格式化,主要包括邮件的主题与发件人、收件人邮箱昵称和邮件内容等信息。
3.解析检测目标网站通知
前面两步,已经完成了目标网站已有通知数据库和邮件发送系统的建立,第三步要完成的工作,主要由两部分组成。
一是,利用第一步使用的urllib、BeautifulSoup模块解析目标网站内容数据,并与前面建立的数据库进行对比检测。
二是,若检测到目标网站有新的通知,则将新通知数据插入到数据库中,然后,发送提示电子邮件。
该步主要代码展示如下。
在这个示例中,只选取了最新的一条通知发送了电子邮件提示,具体邮件信息可自己设定。
4.制定计划任务
前面三步,已经完成了使用Python获取目标网站最新通知,并发送提示电子邮件的脚本程序。
在这一步,将使用Windows自带的DOS命令框架和任务计划程序去每小时自动运行一次Python脚本,实现自动更新通知的目的。
首先,需要编写一个cmd命令文件,方便在DOS框架下执行Python脚本。
主要代码展示如下:
@echo off # 关闭回显
cd C:\demo # 找到Python脚本文件的路径
python Python.py # 执行Python脚本文件
最后,使用任务计划程序制定一个任务,可设定为每隔一小时自动运行一次cmd命令文件。
来源:https://www.cnblogs.com/python0921/p/13137582.html


猜你喜欢
- 这是内部的一个邮件记录,分享出来听下业内同行的声音。事情是这样的..==先是 A 推荐了白鸦的推到内部群:“设计师们一定要养成一个习惯:无论
- 本文实例讲述了Python Flask框架模板操作。分享给大家供大家参考,具体如下:模板在前面的示例中,视图函数的主要作用是生成请求的响应,
- 下面这几个小问题都是基于 InnoDB 存储引擎的。1. ID最大的记录删除后,新插入的记录ID是什么例如当前表中有ID为1,2,3三条记录
- 1.开发jQuery 插件的基本格式 (function ($) { $.extend($.fn, { }) })(jQuery) 2.开发
- Dethe Elza (delza@livingcode.org), 高级技术架构师, Blast Radius &n
- 简介本文主要通过探究在golang 中map的数据结构及源码实现来学习和了解map的特性,共包含map的模型探究、存取、扩容等内容。欢迎大家
- 1.什么是Blazor? 有什么优势?ASP.NET Core Blazor 简介Blazor 是一个使用 Blazor 生成交互式客户端
- 前言目前,许多运动检测技术都是基于简单的背景差分概念的,即假设摄像头(视频)的曝光和场景中的光照条件是稳定的,当摄像头捕捉到新的帧时,我们可
- 文章是从stackoverflow翻译过来的,原文地址:Relative imports for the billionth time本文要
- 直接上代码import pygameimport randomdef main(): # 初始化pygame &n
- 不久之前,笔者一个在企业中从事网管工作的朋友向我求助关于SQL Server服务器内存升级后遇到的问题。原来,他们企业准备上一个企业邮箱系统
- 对方用<script language="javascript"> var location="&
- 大概五年前吧,我那时还在为一家约会网站做开发工作。他们是早期创业公司,但他们也开始拥有了一些稳定用户量。不像其他约会网站,这家公司向来以洁身
- 解释器模式(Interpreter Pattern)是什么解释器模式是一种行为型模式,它定义了一种语言文法,并且定义了一个解释器,用来解释这
- MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的。点击进入:下载地址1.下面是msi的下载和安装的步骤点击进去之后根据自己
- 利用layui制作与众不同的感谢表单,表格layui极大的提高了前端开发效率,它极具个性的样式等等都非常吸引人,接下来我将为大家展示如何利用
- 如下所示:from keras import backend as Kfrom keras.models import load_model
- 本文实例讲述了MySQL使用外键实现级联删除与更新的方法。分享给大家供大家参考,具体如下:MySQL支持外键的存储引擎只有InnoDB,在创
- 很多朋友和我讨论了一些关于网站开发到底使用哪种语言最合适,尤其是到网站一定有一定流量的时候,到底那种web语言更适合做站呢,精灵这里根据自己
- PS笔刷,样式,形状、渐变、滤镜载入方式及使用:1、笔刷载入方式: 打开PS,编辑-->预设管理器-->载入-->然后点你