python抢课脚本 复旦_如何实现简单的脚本来抢课

我是湖南大学,19届,电子科学与技术专业1班的梁原韶。

这里我分享一下我是如何通过写一段程序抢到选修课的。故事发展过程为时间顺序,本人为java小白,本文应该很容易看懂的。

在开始抢课的前几天,我就想通过某些不正当的手段抢课(首先,要敢去想)。在网上搜了一下资料,发现别的学校已经有学生用javascript,加上一下网络和网站的知识,实现了脚本抢课。可我只对网站了解一点,网络安全更不用谈了。

接着我又把我的想法告诉了一个老师,他告诉我可以修改系统hosts文件提升网络访问速度,并告诉了我了一个网址(https://www.jianshu.com/p/fd028aa7e4aa),里面讲的是如何修改hosts文件,还讲了可以通过调用cmd窗口,输入ping指令来获取某个网页的数据。老师还悄悄告诉我,抢课时去离校园网服务器近的地方,那里信号好一点······

可是呢,像顶上的那张图片一样,我还是输了,连登都没登进去过。

过了大约一个半小时,能进去了,课都没了,但是还有陆陆续续被推掉的课,刚一刷新,出来了一堂,但是手速不够,抢不到。

于是我想,如何成为几千人中手速最快的那个人?肉体不可能完成的,得用程序来实现,接着就诞生下面的那段代码。当时的我还得意的笑了几声。

package test;

import java.awt.AWTException;

import java.awt.Robot;

import java.awt.event.InputEvent;

public class Test2

{

public static void main(String[] args)

{

Test2 test=new Test2();

try

{

Thread.sleep(3000);

} catch (InterruptedException e)

{

e.printStackTrace();

}

for(int i=0;i<40;i++)

{

test.choose1();

}

//让程序进行40次的循环

System.out.println("退出");

}

public void choose1()

{

try

{

Robot robot = new Robot();

robot.delay(400);

robot.mouseMove(50, 250);

robot.mouseMove(50, 250);

robot.mouseMove(50, 250);

robot.mousePress(InputEvent.BUTTON1_MASK);

robot.mouseRelease(InputEvent.BUTTON1_MASK);

robot.delay(400);

long t1 = System.currentTimeMillis();//获取当前时间

while(true)

{

long t2=System.currentTimeMillis();//再次获取当前时间

System.out.println("进去1");

robot.mouseMove(1864, 391);

robot.mouseMove(1864, 391);

robot.mouseMove(1864, 391);

robot.mousePress(InputEvent.BUTTON1_MASK);

robot.mouseRelease(InputEvent.BUTTON1_MASK);

robot.delay(20);

robot.mouseMove(1098, 633);

robot.mouseMove(1098, 633);

robot.mouseMove(1098, 633);

robot.mousePress(InputEvent.BUTTON1_MASK);

robot.mouseRelease(InputEvent.BUTTON1_MASK);

robot.delay(20);

if(t2-t1>3000)

{

break;

}

}

} catch (AWTException e)

{

e.printStackTrace();

}

}

}

其实本质很好理解,就是通过java的awt包下的Robot类来控制鼠标的移动,再加上对时间的控制,让鼠标自动地在屏幕的固定位置来回的点。比如说,鼠标刚点完刷新按钮,过了0.000000000001秒后,再让鼠标点击抢课的按钮。这个过程时瞬间完成的。我就是让鼠标抽了风一样,在需要的位置频繁地点击。

但是,我并不能通过屏幕的变化,来控制的鼠标的移动。我尝试过通过获取屏幕某个像素点RGB颜色,通过它的变化,来让鼠标移动。但是屏幕上颜色变化那些像素点精确的位置很难取到。

还有就是,mouseMove这个方法,也就是控制鼠标移动位置的这个方法,你如果只写一个,并不能移动到你想要移动的那个位置,我也不知道为什么,应该是计算机的机制本身的问题吧,于是我每次要移动鼠标时,就一次性写了三个,很高兴,解决了这个问题。

我用的是360极速浏览器,可以把要抢课的页面改成兼容模式,或许会快一点。等以后学得多了,我会尝试借助谷歌的开发者工具来实现抢课。

看起来很傻是吧,这么简单...

接着我只需要挂机,让程序while(true)循环,别人退掉的课就能到我的手里,然后我再选择性地退掉,好吧,这就是简单的抢课脚本。

如果你也有什么想法,包括项目,编程,人生观,情感等方面的问题,欢迎加我qq:291768760进行探讨。希望有学长学姐能带带我。

不喜勿喷,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值