最近在找工作,不知道是不是年底,招聘需求相较于平时会少些,以至于简历开放后通知次数比较少。
某些招聘网站上,有“刷新简历”的功能,hr后台是如何操作的我不太清楚,按照刷新后的提示,大概就是“刷新后可以被优先发现”。
考虑到有刷新总比没刷新强,手动刷新又比较麻烦。
作为一个程序员,就得想办法让他自动刷新。
一翻探索后,有了此文。
本职工作原是做Android 开发,以java代码为主。
要让浏览器给你干活,需要学点js,js本来不太懂。现学现卖,就是记录一个思路。
- 写在前面
写Android APP 的时候,免不了调试服务端的接口,原来在项目里,一般客户端与服务端调接口,主要都是我在做,Windows端有一个接口调试神器,Fiddler4,建议每一个Android程序员都学习一下他的用法,这里不过多描述。
但是基于浏览器的网络调试,可以不用第三方工具。随便一个浏览器都可以做调试,我主力浏览器是Opera,就用它来演示思路。
标记1,Network:是网络请求日志记录的区域。
标记2的Console,是控制台的区域。
当页面上发送了网络请求,就会出现Network。
当js输出console.log(); log就会出现在Console。
你也可以在Console里面直接输入js代码测试,例如:
document.firstChild//输入这句话,获取当前页面的第一个标签。
<!DOCTYPE html>//得到第一个标签。
- 点击刷新的时候浏览器做了什么?
点击了三次刷新了,找规律,发现他发起了三次get的请求。
并且response里面,明确告知你“刷新成功”
可以的得知:发起get请求可以刷新简历。
他的url是这样的:
http://~.~.com/ResumeCenter/MyCenter/RefreshResume?resumeId=[一串数字]&resumenum=[数字+英文]&version=1&language=1&t=1451556700000
对比三次发送请求的参数,只有最后面 “t=”是变化的,有开发经验的朋友就知道,这是时间戳。
而 resumeId 、 resumenum的参数是固定的,他大概表示的是你的个人信息,或者简历的id。
得出规律,那么自动刷新的思路就是:
- 根据时间戳拼接合理的url地址。
- 通过js在后台发送请求。
- 定时重复。
- 记录成功次数和失败次数。
Just Do It
构造一个url
Math.round(new Date().getTime());
//可以得到时间戳。
function refresh(){
var time = Math.round(new Date().getTime());
var urlTemp = "http://~.~.com/ResumeCenter/MyCenter/RefreshResume?resumeId=[一串数字]&resumenum=[数字+英文]&version=1&language=1&";
var url = urlTemp + "t=" +time;
console.log(url);
}
最终得到我要的url。
发送请求
对于这种需求,当然是怎么快怎么来,百度Google得到一个发get请求的代码,测试没有问题,直接就用上了。太长就不贴出来了。
var failCount=0;//全局成员,记录失败次数
var successCount=0;//记录成功次数。
function refresh(){
var time = Math.round(new Date().getTime());
var urlTemp = "http://~.~.com/ResumeCenter/MyCenter/RefreshResume?resumeId=[一串数字]&resumenum=[数字+英文]&version=1&language=1&";
var url = urlTemp + "t=" +time;
console.log(url);
console.log("refresh time :"+ new Date().toString());
send_request("GET",url, null,"TEXT",processTextResponse);//发送请求
//function send_request(method, url, content, responseType, callback)
//具体代码太长,忽略。
setTimeout(refresh,60000*20); //20后分钟执行一次自己
}
function processTextResponse() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
successCount++;
console.log("刷新成功,成功次数:"+successCount);
document.title ="成功次数:"+successCount + " 失败次数" +failCount;//直接改变标题,这样方便查看刷新次数。
} else {
failCount++;
console.log("您所请求的页面有异常,失败次数:"+failCount);
………………
}
} else {
}
}
refersh();//页面载入就直接执行自己
写在后面
就是大概记录一个解决问题的思路。
由于看不到后台,所以这个做法是不是成功了也不能保证。
献丑。