最近看治电很多人跑路, 所以就想着造福他们, 想去自动的在某招聘软件中跟HR打招呼, 由于买个服务器来单独配个corntab确实有点浪费, 所以就选择了云函数, 毕竟云函数的免费额度够用了
所以, 开始吧
1. 脚本编写
我使用的是NodeJS进行编写, 总共文件分为三个
- common.js 存放公共的头部参数, 和公共方法
- request.js 用于请求接口
- index.js 用于云函数的触发器配置运行的文件
代码都没啥, 就是带参数请求接口
公共参数, 主要是配置请求的header
代码语言:javascript复制const headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat',
'content-type': 'application/x-www-form-urlencoded',
mpt: '',
platform: '',
scene: '',
ua: '{"model":"microsoft"}',
v: '',
ver: '',
wt2: '',
zpAppId: '',
Referer: '',
'Accept-Encoding': 'gzip, deflate, br'
}
function sleep (delay) {
return new Promise(resolve => {
setTimeout(() => {
resolve()
}, delay)
})
}
exports.headers = headers
exports.sleep = sleep
接口请求, 主要就是先获取指定城市的岗位列表, 然后挨个打招呼
代码语言:javascript复制const got = require('got')
const fs = require('fs')
const { headers, sleep } = require('./common')
function getJobList(page = 1) {
return got('自己去抓包哦', {
method: 'GET',
headers,
searchParams: {
appId: 10002,
expectId: 185008765,
sortType: 1,
cityCode: 101020100,
districtCode: '',
businessCode: '',
subwayLineId: '',
subwayStationId: '',
page: page,
pageSize: 10,
salary: '',
degree: '',
experience: '',
stage: '',
scale: '',
industry: '',
longitude: '',
latitude: '',
positionCode: ''
}
})
}
function addJob(jobId, lid, securityId) {
const body = {
appId: '',
jobId: jobId,
lid: lid,
securityId: securityId
}
return got('自己去抓包哦', {
method: 'POST',
headers,
body: new URLSearchParams(body).toString()
}).then(res => {
console.log(res.body)
return res
})
}
async function main () {
try {
let jobList = []
for (let i = 1;;i ) {
const res = await getJobList(i)
const data = JSON.parse(res.body)
jobList.push(...data.zpData.jobList)
if (!data.zpData.hasMore) {
break
}
}
const asyncArr = []
jobList.forEach(async job => {
console.log(job.jobName)
asyncArr.push(addJob(job.encryptJobId, job.lid, job.securityId))
})
Promise.all(asyncArr)
} catch (error) {
console.log(error)
}
}
main()
然后就是获取触发器中附加信息的主函数, 通过获取附加信息中写的文件名, 来调用指定文件, 因为我还有发简历的文件, 所以要区分下
代码语言:javascript复制'use strict';
exports.main_handler = async (event, context, callback) => {
for (const v of event["Message"].split("rn")) {
console.log(v);
require(`./${v}.js`)
}
}
2. 创建云函数
直接首页搜索云函数
进入控制台
创建云函数, 创建方式选择自定义创建, 运行环境选择NodeJS, 函数代码我们直接选择上传文件夹, 方便快捷啊, 把我们的代码文件夹直接选中上传即可
注意下, 这里的超时时间可以设置长一点, 毕竟是接口请求, 还是得花点时间的, 设少了, 还没请求完成, 就给断了
接下来, 配置触发器, 选择定时触发, 我们可以选择它写死的一些时间点, 例如每一分钟, 每一天等, 也可以使用自定义触发周期, 自己配置cron表达式, 例如每天晚上九点就是0 0 9 * * * *
最后, 附加信息选择是
, 然后写我们要跑的文件名, 即request
点击完成即可创建云函数
随后我们可以在列表中, 查看到我们的云函数, 进入详情, 也可以修改代码并部署