NJUST EO/教务处系列级网实现通知的实时推送项目核心源码
- 作者:InetGeek(eo20->cs20)
写这份代码的目的是我个人忙(懒),经常不看级网和教务处的通知而错过了很多即时信息,于是当时自己做了一个小功能自用。但后面发现很多人都有这样的情况和和我一样的诉求,即写程序代替 我去看通知,于是经过不同版本的代码迭代和升级,有了今天更有价值的核心源码,需要的同学可以拿去用。
- V1.0 个人自用,解决反爬虫问题(selenuim+chromedriver)。
- V2.0 小部分人和我一起用,实现定时邮件通知级网/教务处内容更新,爬取方式沿用V1.0。
- V3.0 年级100余人使用,接入微信公众号(第三方)通知+私人邮件通知(自用),爬取方式沿用V1.0。
- V4.0 取消了微信公众号推送(毕竟功能受限且好多广告且不直观),改用接入QQ机器人群发,近320人接受该机器人自动服务,爬取方式沿用V1.0。
- V4.1 由于通过技术手段,爬取方式改为RSS订阅解析,响应速度更快,效率更高。
通过研究发现RSS有延时,延时近2小时,无法做到真正意义上的实时推送,于是另辟蹊径
- V4.2
通过分析发现级网除了Index页面有反爬机制以外,其他内容页面没有反爬机制(学校所有网站部署了SSL证书,取消了反爬虫机制,若后续又打开了该机制,可以联系本作者索要级网/教务处网站的RSS订阅源,邮箱:ranshens@foxmail.com),于是通过设计算法和利用机器人本身的优势真正意义上实现了实时推送效果。
开发自己的RSS订阅App(建议采用uni-app),实现高度定制化、灵活性的推送服务。 版权归作者InetGeek所有,使用请注明来源和作者。
程序可挂在服务器上通过设置定时计划,如每多少时间执行一次(etc. 1 time/1 minute)。
- 程序+邮箱发送方案
- 程序+微信公众号推送方案(推荐使用push+平台一推多的接口)
- 程序+QQ机器人(推荐)
- 程序+App(待开发)
- eo_core.py 级网栏目检测和实时推送的核心代码
- jwc_core/jwc_spider.py教务处爬取[学生通知]板块代码
- jwc_core/jwc_sender.py教务处通知定时推送代码
- 实现了实时检测和推送的核心功能
- 占用更小的内存、响应速度更快,绕过了爬虫机制,消耗服务器更少的资源。
- 能实时判断代码执行情况,增加了异常检测,如果发生异常则自动通知开发者。 喜欢的话给一个star/fork吧。