Python网络爬虫之刷点赞


感谢各位老师、领导、专家莅临指导,不胜荣幸,如有不足之处还望不吝指出,感谢!
我这里有一点小的想法想与大家分享。
各位老师手上拿到的资料,既是教案,也是学生学习的笔记,和学生看到的一样。
我是用markdown语法写的,然后再用hexo渲染为静态的网页,学生看到的色彩层次更丰富,代码也全部具有语法高亮效果。
其制作的初衷是,由于学生经常忘记带资料(或教材)来机房,三令五申始终无法杜绝这一现象。
一种解决方案是使用PPT,但是PPT翻过便无法回头,一些同学看得快,一些同学看得慢,还有很多同学时不时走走神。我是属于比较笨的人,常常会因PPT翻页速度太快而产生焦虑,最后干脆摆烂。虽然我现在理解教师的苦衷,课堂时间有限(特别是公开课),只能保障大部分人。在我的学生时代,我也常常走神,甚至我现在也经常上课到一半,突然忘记后面该干嘛了(包括公开课的时候)。所以我实在不忍心以这一原因去责怪学生。
我现在能想到的最好的方法就是制作教案笔记平台,我忘了就看看教案,学生走神了也可以看看,上面几乎有详细的步骤、解析和原理,毕竟我必须保证我自己也能通过这个东西完成任务,书写代码,如果要用到之前的知识,也可以很方便地翻出来查看。
我做PPT很慢,做一份PPT至少要数个小时,如果我说我太忙了实在没有时间制作PPT,不免有找借口之嫌,但是如果能有一个既能节省时间,又能达到更好效果的方法,何乐而不为呢?这样我们就可以把节省下来的时间专注于各项研究、技能训练。
其中还包括考试平台(学生不需要带试卷,教师不需要批卷,做完实时显示分数和答案,现场马上讲解,记忆深刻),作业上传平台(我利用学生做作业的间隙改作业,给出实时的反馈,高效利用碎片时间,学生的所有作业也会包整理保存在平台,不然一月之后准丢一半)。
如果有老师感兴趣,欢迎探讨。

一、情境导入(5分钟)

1.辛苦一场,被别人恶意刷票击败

事情的经过是这样的,我的研究生导师的女婿参加了一个投票的活动,每人每天可以投10票,投票这件事情我们太擅长了,我的导师的学生很多都是班主任,一发动学生和家长,每天可以投几千票,如果不是这样,谁家的亲戚朋友有这么多,我们一直以绝对的优势占据第一名,直到最后一天,有人开始动用非常规的手段了,那就是用程序刷票,短短几小时逆袭,甚至没控制好,还多超过我们一万多票,事情就是这样,大家看图吧。

事件起始 中途动员 别人恶意刷票

2.umn网课平台刷赞

在我读研期间,正赶上疫情,学校实行家里蹲大学,自己在家上网课,老师说期末成绩会参考平台的积分,积分是靠点赞获得,一个赞一分,我发这个点赞存在明显的漏洞,可以通过Python程序绕过前端验证,想点多少赞就点多少赞,以下是一些比较有趣的截图。
刷票效果
老师被吓到

二、实际演示,感受效果(2分钟)

运行一下umn刷赞的程序,让学生以最直观的方式感受程序的作用,理解这节课的任务是什么。

特别提醒:本门课是教会大家Python网络爬虫的危害,原理,及防范方法,大家学会之后切不可在网上随意刷赞,如果将刷赞用于牟利,需承担法律后果。

提问:了解了这节课的课程内容,你认为我们为什么需要学习网络爬虫?

三、原理讲解(3分钟)

原理其实就一句话,Python爬虫可以绕过前端,直接向服务器发送请求。
人通过鼠标点击点赞按钮,接着网页会发出一条请求,请求包括请求的地址请求方式,以及请求携带的参数
可以通过Python程序直接发出请求,不需要点击点赞按钮。
这样的好处是,直接跳过的前端的限制,因为点赞按钮只能点一次,再点的话,就是取消点赞了。
提问:为什么人手动点赞不行,而通过程序就可以?

四、实验步骤(15分钟)

  1. 打开http://10.163.72.39 ,在首页中下滑,随便进入一份作业步骤1
  2. 按F12(或者右键—检查)打开浏览器开发工具步骤2
  3. 选中Network,然后点击点赞按钮,抓取到点赞的请求(第一个),获得请求的请求地址请求方式请求携带的参数步骤3
  4. 修改程序,将请求地址、携带参数,请求方式,填入以下的程序,并运行程序。
    import requests       # 引入“网络请求”库
    
    for i in range(30):   # 循环30次(请各位同学务必不要循环得太多,服务器承受不住)
        url = 'http://10.163.72.39/Task_like.php?task_id=5'  # 请求的地址及携带的参数(请替换为步骤3通过实际请求获得的地址)
        res=requests.get(url)        # 发起请求,并获得回应(请求方式为post或get,你看看步骤3中获得的请求方式应该是哪种?)
        print(res)                 # 打印网站给我们的回应,200表示成功

    注:每人每天只能点赞15次,只要不乱点完全够用,请先阅读教案,理解之后,务必在15次点赞请求中找到请求地址、请求方式和请求携带的参数。另外用程序发请求可以实现无限点赞,但请不要使用死循环,以免大量的请求造成我服务器的崩溃,感谢各位同学🌹🌹🌹。

五、拓展任务(10分钟)

由于上学期的骂战事件,留言板被我关闭了,最多可以发表情,请各位同学思考一下,是否可以通过我们通过刚才学习的知识,突破留言板的限制?

思路提示

还记得我们之前讲过的原理吗?
Python爬虫可以绕过前端,直接向服务器发送请求。
我们可以先按F12键打开浏览器开发工具,选中Network,然后发一个表情,捕获到网络请求,找到请求的地址携带的参数请求的方式
请求的参数一定是我们要发送的表情,大家发现了吗?由于是中文字符,看上去乱七八糟的很像乱码,我们这部分内容替换成我们想要发送的内容,不就可以实现在留言板上自由留言了吗?
作为扩展任务,代码我就不提供了,套路都是一样的,大家是否能把所学的知识迁移应用到其他地方,做到触类旁通呢,相信聪明的同学们都可以完成😎
提问:为什么人手动留言不行,而通过程序就可以?

六、习题练习(5分钟)

通过几道习题巩固今天学习的知识吧
请同学们点击顶部导航栏上的考试、选择“Python网路之刷点赞考试”。
测验一下大家今天的学习效果吧


文章作者: 彭韦浩
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 彭韦浩 !
  目录