关于某招聘网站简历自动刷新的探索思路

最近在找工作,不知道是不是年底,招聘需求相较于平时会少些,以至于简历开放后通知次数比较少。
某些招聘网站上,有“刷新简历”的功能,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。

得出规律,那么自动刷新的思路就是:

  1. 根据时间戳拼接合理的url地址。
  2. 通过js在后台发送请求。
  3. 定时重复。
  4. 记录成功次数和失败次数。

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();//页面载入就直接执行自己

写在后面

就是大概记录一个解决问题的思路。
由于看不到后台,所以这个做法是不是成功了也不能保证。
献丑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值