【玩转云函数】腾讯云函数帮我定时和 HR 打招呼,找工作不再愁!
以下内容来自「玩转腾讯云」用户原创文章,已获得授权。
文章图片
最近看很多人跑路,所以就想着造福自己,想去自动的在某招聘软件中跟 HR 打招呼,由于买个服务器来单独配个 corntab 确实有点浪费,所以就选择了云函数,毕竟云函数的免费额度够用了。
文章图片
所以,开始吧!
01. 脚本编写
我使用的是 Node.js 进行编写,总共文件分为三个:
- common.js 存放公共的头部参数, 和公共方法
- request.js 用于请求接口
- index.js 用于云函数的触发器配置运行的文件
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 = headersexports.sleep = sleep
接口请求,主要就是先获取指定城市的岗位列表,然后挨个打招呼;
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 = https://www.it610.com/article/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()
然后就是获取触发器中附加信息的主函数,通过获取附加信息中写的文件名,来调用指定文件,因为我还有发简历的文件,所以要区分下;
'use strict';
exports.main_handler = async (event, context, callback) => {
for (const v of event["Message"].split("\r\n")) {
console.log(v);
require(`./${v}.js`)
}
}
02. 创建云函数
- 直接首页搜索
云函数
文章图片
- 进入 云函数控制台
文章图片
- 创建云函数,创建方式选择自定义创建,运行环境选择 Node.js,函数代码我们直接选择上传文件夹,方便快捷啊,把我们的代码文件夹直接选中上传即可;
文章图片
- 注意:这里的超时时间可以设置长一点,毕竟是接口请求,还是得花点时间的,设少了,还没请求完成,就给断了;
文章图片
- 接下来,配置触发器,选择定时触发,我们可以选择它写死的一些时间点,例如每一分钟,每一天等,也可以使用自定义触发周期,自己配置cron表达式,例如每天晚上九点就是
0 0 9 * * * *
; - 最后,附加信息选择
是
,然后写我们要跑的文件名,即request
文章图片
文章图片
- 点击「完成」即可创建云函数,随后我们可以在列表中,查看到我们的云函数,进入详情,也可以修改代码并部署。
文章图片
文章图片
Web Function 体验官招募令 惊喜福利满满,点击查看活动详情
文章图片
Web Function 使用体验
- Web Function 产品文档:
https://cloud.tencent.com/doc...
- Web Function 快速体验链接:
https://console.cloud.tencent...
文章图片
One More Thing 立即体验腾讯云 Serverless Demo,领取 Serverless 新用户礼包 腾讯云 Serverless 新手体验 。