本文是网课摸鱼系列第四弹
前言
众所周知,作业ddl,是大学生生产力的主要来源,当然,与之并列的还有女/男朋友。然而作为重度拖延症患者,ddl不拖到最后的24个小时,那是不可能做的。
但是,常在河边走,哪有不湿鞋。(所以你需要一双雨靴)
如果一个不小心把4月30号截至的作业看成5月30号。。。
我想也就不用开学了.jpg
正事开始
了解我的人都知道,上面纯粹是胡说八道,我怎么会在最后的24小时才做,起码还要砍上一半,最后的12小时再写,hhh。
但是确实,网课对我来说,更重要的事情是记住各种作业的截至时间,这对我的记忆力是一个极大的挑战。我做过人脑研究(别瞎想,我做的人脑研究,和你没啥关系),人脑倾向于记住那些轻松愉快的事情。想必作业是和轻松愉快一点也不沾边的事情。
(PS:不会真的有人认为写作业是一件轻松愉快的事情,如果有的话,建议把我的也写了,我不介意和别人分享我的快乐)
在网课的惨痛教训下,我决定痛改前非,把写作业的时间提前到2天,实现了巨大的提升,生产力直接提高了4倍。
并且写一段小代码提醒我写作业(当然,这只是一个美好的愿景)
正事结束
上面的正事讲完了,下面讲点不正经的事情
总的来说,实现方法是这样的,我用python爬虫模拟登录了某平台,通过记录cookies和使用抓包的方法,分析了各种post和get请求,爬取了异步加载的界面,用正则表达式提取数字并最后设置为开机自启动,把临近提交截至时间2天的作业发短信提醒我自己。(毕竟,作业记不住要写的话,手机还是要玩的)
emmm,可以简单地放一下技术路线图
下面具体讲一下步骤:
1.python爬取模拟登录
首先我们需要一点点web的前置知识(get和set方法),以及简单地了解一下fiddler的使用方法。
针对这个小项目来说,登录时候发送post请求加上json格式的账号密码到另一个地方,而get方法则会在一开始给浏览器set一个sessionid,而后我们使用requests库的会话维持功能,通过这个cookies,一步一步地通过抓包解析代码,分析房间号,课程号,以及是否提交,剩余信息等,这一部分会重复跳转4-5次,以有时间会写一个新的博客和图书馆自动抢座放到一起作为一个例子讲,不赘述。
2.正则表达式提取数字并作判断
这一步存在的原因是要实现临截至日期到两天才发送短信,这一是为了塑造紧迫感,另一个主要是为了节省发送的短信条数
可以现学,我使用正则表达式去提取的是字符串中第一个数字。正则表达式需要re库
re.findall(r'[1-9]+\.?[0-9]*',commen_homework['homeworks'][work]['status_time'])
在这里插入代码片
3.注册账号,用python设置发送短信
python发送短信的方法,大概有腾讯云平台和Twilio平台
腾讯云平台主要是只免费10条短信,所以选择了Twilio平台
官网:https://www.twilio.com/
Twilio是国外平台,所以需要科学上网,同时注意一点,Twilio平台是不能进行垃圾短信轰炸的,因为你只能发送短信给经过认证的手机,建议在注册账号时认证要发送的手机。
4.设置开机自启动
这一步首先要写一段批处理脚本(.bat文件)
然后设置windows的开机自动启动启动这段脚本
@echo off
cmd /k python D:\project4\py.py
pause
而开机自动启动见http://www.win7zhijia.cn/jiaocheng/win7_22961.html
或者百度一下
具体实现方法见我的公众号:积淀智慧,后台留言(在我不忙的时候,还是有一些可能会看看的),源码开源还需要亿点点时间
最后提醒的时间效果是这样的
好了,我要去补作业了.jpg