2025年10月6日星期一

刷简历任务脚本

1.购买服务器阿里云:服务器购买地址https://t.aliyun.com/U/E8o0aM若失效,可用地址

1.购买服务器

阿里云:

服务器购买地址

https://t.aliyun.com/U/E8o0aM

若失效,可用地址

https://www.aliyun.com/daily-act/ecs/activity_selection?source=5176.29345612&userCode=49hts92d

腾讯云:

https://curl.qcloud.com/wJpWmSfU

若失效,可用地址

https://cloud.tencent.com/act/cps/redirect?redirect=2446&cps_key=ad201ee2ef3b771157f72ee5464b1fea&from=console

华为云

https://activity.huaweicloud.com/cps.html?fromacct=64b5cf7cc11b4840bb4ed2ea0b2f4468&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905

2.部署教程

2024年最新青龙面板跑脚本教程(一)持续更新中

3.代码如下

(() => {  'use strict';
  // unit fragment  function Unit() {    return `<div><label>单位</label><select class='swal2-select' data-time-type='1'>${Object.entries(      {        1'秒',        60'分',        3600'时'      }    )      .map(        (e) =>          `<option value=${e[0]} ${GM_getValue('timeType') == e[0] ? 'selected' : ''}>${            e[1]          }</option>`      )      .join('')}</select></div>`;  }
  // time range  function AvailTime() {    return (      '<div><label>生效时段</label><input value="' +      GM_getValue('availBegin', init.begin) +      '" type="time" class="swal2-input" data-begin="1" style="width:28%"><input value="' +      GM_getValue('availEnd', init.end) +      '" type="time" class="swal2-input" data-end="1" style="width:30%"></div>'    );  }
  // list fragment  function List() {    return hosts      .map(        (e) =>          `<div><label>${e.name}</label><input class='swal2-input' value=${e.interval} type=number min=0 data-key=${e.key}></div>`      )      .join('');  }
  function setup() {    let box;    Swal.fire({      title'设置各站点刷新间隔',      // icon: "question",      html:        Unit() +        AvailTime() +        `<div><label>统一调整</label><input class='swal2-input' type=number min=0 data-all-input=1></div>` +        List(),      showCloseButtontrue,      showCancelButtontrue,      focusConfirmfalse,      confirmButtonText'确定',      cancelButtonText'取消',      didOpen(el) {        el = el.querySelector('#swal2-html-container');        el.oninput = (e) => {          if (e.target.value <= 0) {            e.target.value = 0;          }          if (e.target.dataset.allInput == 1) {            Array.from(el.querySelectorAll('input[data-key]')).forEach((inp) => {              inp.value = e.target.value;            });          }        };        el.onchange = (e) => {          if (e.target.type !== 'time'return;          if (e.target.dataset.begin == 1 && e.target.nextElementSibling.value < e.target.value) {            e.target.nextElementSibling.value = e.target.value;            return;          }          if (e.target.dataset.end == 1 && e.target.previousElementSibling.value > e.target.value) {            e.target.previousElementSibling.value = e.target.value;          }        };      },      willClose(el) {        box = el;      }    }).then((res) => {      if (res.isConfirmed) {        GM_setValue('timeType', box.querySelector('.swal2-select').value);        Array.from(box.querySelectorAll('input[data-key]')).forEach((e, i) => {          GM_setValue(e.dataset.key, (hosts[i].interval = +e.value));        });        GM_setValue('availBegin', box.querySelector('input[data-begin]').value);        GM_setValue('availEnd', box.querySelector('input[data-end]').value);        run();      }    });  }  const init = {    begin'08:00',    end'22:00',    timeType1  };  const hosts = [    {      host'www.zhaopin.com',      key'zhilian',      name'智联',      btn'.login-after .refresh',      intervalGM_getValue('zhilian'15)    },    {      host'www.51job.com',      key'job51',      name'前程无忧',      btn'#refreshresume',      intervalGM_getValue('job51'15)    },    {      host'c.liepin.com',      key'liepin',      name'猎聘',      btn'#main-container .aside-vap-bottom-btn1',      intervalGM_getValue('liepin'15)    }  ];  let current = hosts.findIndex((e) => e.host === location.host);  hosts.unshift(hosts.splice(current, 1)[0]);  current = hosts[0];
  GM_registerMenuCommand('设置', setup /* { id: 1 } */);
  const isAvailable = () => {    const now = new Date(),      hm = (now.getHours() + '').padStart(20) + ':' + (now.getMinutes() + '').padStart(20);    return hm > GM_getValue('availBegin', init.begin) && hm < GM_getValue('availEnd', init.end);  };  const run = () => {    if (!isAvailable()) return;    document.querySelector(current.btn)?.click();    setTimeout(run, 1000 * current.interval * GM_getValue('timeType', init.timeType));  };  // sync data with other page  const availChanged = (key, oldValue, newValue, remote) => {    remote && run();  };  GM_addValueChangeListener('availBegin', availChanged);  GM_addValueChangeListener('availEnd', availChanged);  hosts.forEach((e) => {    GM_addValueChangeListener(e.key(key, oldValue, newValue, remote) => {      if (!remote) return;      e.interval = newValue;    });  });
  run();  GM_addStyle(    '#swal2-html-container label{display:inline-block;width:4em;text-align:right;}' +      '#swal2-html-container .swal2-select{border: 1px solid #d9d9d9;border-radius:0.1875em;}' +      '#swal2-html-container .swal2-select,#swal2-html-container .swal2-input{width:60%;margin-right:0;margin-left:.5em;}'  );})();

解析

该脚本用于在设定的生效时段内,按自定义时间间隔自动点击三大招聘网站上的"刷新简历"按钮,提升简历曝光度。当前支持:

  • 智联招聘(zhaopin.com)

  • 前程无忧(51job.com)

  • 猎聘(liepin.com)

支持在页面菜单里打开设置弹窗,统一或分别配置各站点刷新间隔、时间单位(秒/分/时)以及生效起止时间。多个页面之间通过 GM_* 存储与监听保持设置同步。

主要方法

  • Unit():生成"时间单位"下拉框的 HTML 片段(秒/分/时),默认取 GM_getValue('timeType')

  • AvailTime():生成"生效时段(起/止)"的时间输入框片段,默认取 availBegin/availEnd

  • List():按站点生成每个站的"刷新间隔"输入框列表(读取/回写各自的 GM_getValue)。

  • setup():打开 SweetAlert2 设置弹窗;

    • 处理"统一调整"输入同步各站点间隔;

    • 约束起止时刻的有效性;

    • 点击"确定"后将选择的单位、各站点间隔与生效时段写入 GM_setValue 并调用 run()

  • hosts:站点配置表

    • 包含域名、存储键、展示名、页面"刷新"按钮选择器、默认/已存的间隔。

    • 根据当前 location.host 将本页对应站点配置提前置顶,作为本页自动刷新目标。

  • GM_registerMenuCommand('设置', setup):在油猴菜单注册"设置",打开配置弹窗。

  • isAvailable():判断当前时间是否处于生效时段(availBegin < 当前HH:mm < availEnd)。

  • run():核心执行器

    • 若处于生效时段,查找当前站点的"刷新简历"按钮并点击;

    • 依据 当前站点间隔 × timeType 递归 setTimeout 再次执行,实现循环刷新。

  • GM_addValueChangeListener(...):跨页面同步

    • 监听 availBegin/availEnd 变化:在"远程页面"更新时,本页重新 run()

    • 监听各站点间隔键变化:远程更改时,更新本页对应 hosts[i].interval

  • GM_addStyle(...):为设置弹窗中的表单元素添加简单样式。

小提示

  • "刷新按钮"通过 CSS 选择器定位:

    • 智联:.login-after .refresh

    • 51job:#refreshresume

    • 猎聘:#main-container .aside-vap-bottom-btn1
      如页面改版可能需要更新选择器。


注意

本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。


历史脚本txt文件获取>>
服务器搭建,人工服务咨询>>

没有评论:

发表评论

刷简历任务脚本

1.购买服务器阿里云:服务器购买地址https://t.aliyun.com/U/E8o0aM若失效,可用地址 1.购买服务器 阿里云: 服务器购买地址 https : //t.aliyun.com/U/E8o0aM 若失效,可用地址 https ://www.aliyun....