本文记录了“每日教育动态”想法的产生以及实现过程,分为三部分:想法由来及实现效果、实现步骤和实现后的一点想法。
一、想法由来及实现效果
教育学是一门理论与实践相结合的学科,实践起来人人都会,每天打开手机刷个公众号都是完成了一次教育活动。而研究起来却比较难受,谁都知道教育学会涉及到人才培养、科学研究和社会服务,谁都知道从事教育领域的研究无非就是从教育价值、教学理念、培养目标、培养标准、人才培养模式与过程、学科和专业建设、学位点建设、课程体系建设、教育教学质量保障、教育评估与评价、教师队伍建设与管理、教育经费支出等方面入手,从特定层级(基础教育、高等教育、职业教育等等)教育着眼,对不同的教育现象进行研究。但是,不结合实际和实践经验,也只是对上面这些概念的某些提法进行一下排列组合,做一些没有营养的官样文章罢了。实际和实践经验从哪里来呢?要么就是亲自去做,要么就是做过的人告诉你,要么去看别人写好的经验总结。教育经验总是不断涌现的,使得搞教育研究的人(或者说搞研究的人)需要有一种追热点的自觉,热点从何而来?主要是新闻。新闻看不过来怎么办,那就筛选着看;新闻分散在各个网站找不到重点怎么办,那就把它们聚集起来,方便你找重点;就是不想看怎么办,那就把每天的新闻打包好,定时发给你,感兴趣的就点开看,不感兴趣的看看标题以后遇到类似的事情还可以似曾相识一下。基于以上的想法(或者说我的自己的需求),我做了一个教育新闻聚集器,取名为“每日教育动态”,每天定时访问教育部官网、教育网、人民网教育频道、新闻教育4个站点,把发布在他们网站上的教育新闻的整理成一个邮件,每天定时发给我。在这个邮件里,会有当天教育部官网、人民网教育频道和新华教育3个网页滚动新闻的所有链接,和教育网头条新闻的链接,感兴趣的点进去看看,不感兴趣的过一遍标题。根据当天的内容,提取出各个网站教育新闻的关键词。这一天的新闻在说什么,一目了然。比如昨天(2020.7.22)新闻的关键词主要是“就业”、“招生”、“志愿”,当时我能够理解“就业”,毕竟今年就业形势如此严峻,保就业的新闻肯定不少。“招生”还不太理解,到了今天高考出分才能够理解。从这个角度看,这个“每日教育动态”还是有点用的,毕竟可以让人保持一定的教育敏感度。另外,在刷公众号和微博的时候看到1-2天前看到过的内容,还是有点兴奋,在一定程度上说明这个“每日教育动态”可以让我这种后知后觉的人提高获取教育时事的效率。那么,这个东西是怎么做的呢?二、实现步骤
在做之前,我觉得还是挺简单的,无非就是写一个“爬虫+发邮件”的Python小程序,但是真上手起来也花费了不少时间。对于实现步骤,就不赘述过程和代码了,免得影响阅读量。简单总结,有以下3个步骤:步骤1:网站选取,确认为公开信息,分析各个网站的HTML结构,编写各自的爬虫代码。我们的“每日教育动态”信息主要来源于教育部官网、中国教育新闻网、人民网教育频道和新华教育。为什么选这几个网站?一是我自己的原因,我的研究范围偏向宏观教育政策,所以教育部官网是要不时刷一下的,把信息整合起来更方便刷。二是这几个网站都比较全面、也比较权威,能代表主流的声音,少一些信息杂音。三是网页页面直接request就可以获得,爬虫不是很费劲。不算import,核心代码两行:获得response、解析HTML(如下)。剩下的都是搬砖的活,用xpath解析得到相应的标题、时间等信息,具体过程可以参考用python帮你扒数据。import requests #访问链接
from lxml import etree #解析网页
response = requests.get(url)
html = etree.HTML(response.content.decode('utf-8'))
步骤2:信息汇总,提取标题、链接等关键信息,构造邮件内容(如下图)。在构造邮件内容之前,先筛选出当日的新闻,并根据当日的新闻内容,使用textrank算法(参考:用Python对自己的文章做文本分析)提取关键词,将爬取的内容按照网站的顺序生成一个字典数组,包含网站名字、关键词、文章标题和文章链接,整理成HTML格式,生成邮件内容。步骤3:定时自动发送邮件。自动发送邮件的方法在Python常用代码(2)中已经提到了,不再赘述。我的这个小程序是在centOS中运行的,使用的是系统自带有crontab来定期执行程序,具体可以参考https://www.cnblogs.com/yangjisen/p/13171918.html。我设置的发送邮件的时间是晚上的9点30分,在这个时间4个网页基本都完成了当日新闻的更新。