用Python自动收集并生成每日教育动态

it2023-01-07  60

本文介绍了“每日教育动态”想法的产生以及实现过程,分为三部分:想法由来及实现效果、实现步骤和一点想法。

一、想法由来及实现效果

教育学是一门理论与实践相结合的学科,实践起来人人都会,每天打开手机刷个公众号都是完成了一次教育活动。而研究起来却比较难受,谁都知道教育学会涉及到人才培养、科学研究和社会服务,谁都知道要从事教育领域的研究无非就是从教育价值、教学理念、培养目标、培养标准、人才培养模式与过程、学科和专业建设、课程体系建设、教育教学质量保障、教育评估与评价、教师绩效管理、教育经费支出等方面入手,在特定层级(基础教育、高等教育、职业教育等等)教育的角度,对不同的教育现象进行研究。但是,不结合实际和实践经验,也只是对上面这些概念的某些提法进行一下排列组合,做一些没有营养的官样文章罢了。

实际和实践经验从哪里来呢?要么就是亲自去做,要么就是做过的人告诉你,要么去看别人写好的经验总结。经验总是常谈常新的,使得搞教育研究的人(或者说搞研究的人)需要有一种追热点的自觉,热点从何而来?主要是新闻。新闻看不过来怎么办,那就筛选着看;新闻分散在各个网站找不到重点怎么办,那就把它们聚集起来,方便你找重点;知道很重要,但是还是不想看怎么办,那就把每天的新闻打包好,定时发给你,感兴趣的就点开看,不感兴趣的看看标题以后遇到类似的事情还可以似曾相似一下。

基于以上的想法(或者说我的自己的需求),我做了一个教育新闻聚集器,取名为“每日教育动态”,每天定时访问教育部官网、教育网、人民网教育频道、新闻教育4个站点,把发布在他们网站上的教育新闻的整理成一个邮件,自动发给我。

在这个邮件里,会有当天教育部官网、人民网教育频道和新华教育3个网页滚动新闻的所有链接,和教育网头条新闻的链接,不感兴趣的过一遍标题,感兴趣的点进去看看。

根据当天的内容,提取出各个网站教育新闻的关键词。这一天的新闻在说什么,一目了然。比如昨天新闻的关键词主要是“就业”、“招生”、“志愿”,当时我能够理解“就业”,毕竟今年就业形势如此严峻,保就业的新闻肯定是这段时间的头条。“招生”还不太理解,到了今天高考出分才能够理解。从这个角度看,这个“每日教育动态”还是有点用的,毕竟可以让人保持一定的教育敏感度。

另外,在刷公众号和微博的时候看到1-2天前看到过的内容,还是有点兴奋,在一定程度上说明这个“每日教育动态”可以提高获取教育时事的效率。

那么,这个东西是怎么做的呢?

二、实现步骤

在做之前,我觉得还是挺简单的,无非就是写一个“爬虫+发邮件”的Python小程序,但是真上手起来也需要花费不少时间。对于实现步骤,就不赘述过程和代码了,免得影响阅读量。总结起来,有以下3个步骤:

步骤1:网站选取,确认为公开信息,分析各个网站的HTML结构,编写各自的爬虫代码。我们的“每日教育动态”信息主要来源于教育部官网、中国教育新闻网、人民网教育频道、新华教育。

为什么选这几个网站?一是我自己的原因,我的研究范围偏向宏观教育政策,所以教育部官网是要不时刷一下的,把信息整合起来更方便刷。二是这几个网站都比较全面、也比较权威,能代表主流的声音,少一些信息杂音。三是网页页面直接request就可以获得,爬虫不是很费劲。不算import,核心代码两行:获得response、解析HTML(如下)。剩下的都是搬砖的活,用xpath解析得到相应的标题、时间等信息。

import requests #访问链接 from lxml import etree #解析网页 response = requests.get(url) html = etree.HTML(response.content.decode('utf-8'))

步骤2:信息汇总,提取时间、链接等关键信息,构造邮件内容(如下图)。在构造邮件内容之前,先筛选出当日的新闻,并根据当日的新闻内容,使用textrank算法提取关键词,将爬取的内容按照网站的顺序生成一个字典数组,包含网站名字、关键词、文章标题和文章链接,并整理成HTML格式,生成邮件内容。

步骤3:定时自动发送邮件。自动发送邮件在先前的文章中已经提到了,不再赘述。我的这个小程序是在centOS中运行的,使用的是系统自带有crontab来定期执行程序,具体可以参考https://www.cnblogs.com/yangjisen/p/13171918.html。我设置的发送邮件的时间是晚上的9点30分,在这个时间4个网页基本都完成了当日新闻的更新。

三、一点想法

这个产品本质上是一个新闻聚集器,可以理解为以前的RSS(简易信息聚合,最早可以追溯到1995年),用一个胶水语言实现一个我出生那年就有的东西并没有什么值得骄傲的地方。做“每日教育动态”的初衷是为了提高我自己的工作和科研效率,事实证明还是有点用的,能够让自己每天看的那些文献有一种落地的感觉,不至于整天飘在半空中。但是在做的过程中也着实花了不少时间,既有学习新技术的快乐,也有不务正业的懊恼,所用时间超出了计划内时间,还是应该把计划做得更好一些,效率再提高一些。

独乐乐不如众乐乐,如果也有小伙伴跟我一样有看教育领域新闻的需求,可以在公众号后台私信把你的邮箱和用途发给我,这样,每天晚上9点半都可以收到一份“每日教育动态”哦。在每天晚上结束了一天的工作和学习来上一份教育新闻晚餐,也不失为一件愉快的事~

最新回复(0)