前言
需求是第一生产力,这不女神节到了,武理TOKEN和华师的木犀团队联手办了个女生节活动= =开启你的小幸运
国际惯例,先贴url
小幸运 | Token团队女生节活动
(小声吐槽:不是联合活动吗?怎么就变成你token一个人的了= =)
电脑端点过去的大概都很难受,这token前端电脑端怎么没适配好阿(ps:其实还是很好看的)
简单介绍下规则,用学校的一卡通登录,然后之后女生可以许愿,男生根据愿望帮助女生实现愿望。
坑爹的来了:每个愿望都是随机刷出来的。
比如:
怎么肥四
学妹表示,她的愿望很简单,我们一看就知道是她的愿望。
嗯那么显然此时此刻的最关键的事情就是赶紧刷到学妹的愿望,然后接愿望呀!
这种时候就觉得随机刷愿望这种东西简直坑爹到爆炸!
经常刷出一些什么淘宝链接(懒得找了,直接把数据贴上来了)
【这个#聚划算团购#宝贝不\r\n错:美宝莲橡皮擦遮瑕笔遮眼\r\n袋黑眼圈脸眼部遮瑕膏粉底\r\n液轻薄海淘爆款(分享自@手\r\n机淘宝android客户端)】\r\nhttp:\/\/m.tb.cn\/h.WuDD1IB 点击\r\n链接,再选择浏览器打开;\r\n或复制这条信息\r\n¥9esP0L5Q9Qs¥后打开????手\r\n淘????
同学还表示刷到过什么直接要钱的
所以茫茫人海中,怎么找到学妹?
思路
先试着发几个数据看看请求好了
点右下角的换个心愿,emmmmmm请求好像很简单阿,就是往同一个url发请求,后台小哥哥随机在库里拿数据?
先来解读下,name、room、school就不说了,id应该就是愿望的id,然后cardno……
嗯???
cardno???看这个格式很像是一卡通卡号阿?!
哇这么玩的吗?这数据也随便拿出来不太好吧= =
emmmmmm算了先不管这个,
就没开放个搜索的api嘛,按关键字搜索的那种= =
似乎没找到= =那就不停发请求,把数据都拿下来好了
emmmmmm这就不怪我了对不对 嘻嘻嘻
把数据都拿下来,然后用正则匹配下学妹的信息,嗯看起来很简单的样子
阿在这之前还得再测测接受愿望的请求,因为接受愿望只有6次修改的机会,所以小心翼翼的用postman记载了下
嗯,这很棒,就发个id就行了,很稳。
代码
= =代码没什么好看的,随便贴一帖,反正没注释hhhhh
HttpClientUtil.java
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.util.HashMap;
public class HttpClientUtil {
private RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(15000)
.setConnectTimeout(15000)
.setConnectionRequestTimeout(15000)
.build();
private static HttpClientUtil instance = null;
private HttpClientUtil() {
}
public static HttpClientUtil getInstance() {
if (instance == null) {
instance = new HttpClientUtil();
}
return instance;
}
public String sendHttpGet(String url, HashMap<String, String> headers) {
HttpGet httpGet = new HttpGet(url);
for (HashMap.Entry<String, String> entry : headers.entrySet()) {
httpGet.setHeader(entry.getKey(), entry.getValue());
}
return sendHttpGet(httpGet);
}
public String sendHttpGet(HttpGet httpGet) {
CloseableHttpClient httpClient = null;
CloseableHttpResponse response = null;
HttpEntity entity = null;
String responseContent = null;
try {
httpClient = HttpClients.createDefault();
httpGet.setConfig(requestConfig);
response = httpClient.execute(httpGet);
entity = response.getEntity();
responseContent = EntityUtils.toString(entity, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭连接,释放资源
if (response != null) {
response.close();
}
if (httpClient != null) {
httpClient.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return responseContent;
}
}
测试类的代码就不贴了,url什么的还是稍微保密一下
结果
把爬下来的结果全部保存到本地
(别问我为什么不打马赛克,因为csdn小透明并不需要)
然后用正则匹配学妹的信息,一共有6个姓李,是武理,学院的字里包含“计”的
李.*武小理.*计
嗯就这样在3k条记录里迅速找到学妹的信息
愿望是好好睡觉,申报书能过……
阿学妹真的可爱= =
最后写上学妹wish的id,用postman(懒的自己写脚本了)发个请求,ok搞定嘻嘻嘻
最后发个截图
顺便再次吐槽下token的前端,这字被挡住了阿喂= =
看另一个页面显示的是正常的(透明效果)
审查元素了下,估计是z-index没改吧= =
正好帮我天然打码了,挺好。
学妹视角:
嗯,以上。
后续
漫长的等待……终于等到这个国创出立项公示了
时隔数月,终于
完美撒花完结。