以下内容来自「玩转腾讯云」用户原创文章,已获得授权。
最近看很多人跑路,所以就想着造福自己,想去自动的在某招聘软件中跟 HR 打招呼,由于买个服务器来单独配个 corntab 确实有点浪费,所以就选择了云函数,毕竟云函数的免费额度够用了。
所以,开始吧!
1
脚本编写
我使用的是 Node.js 进行编写,总共文件分为三个:
- common.js 存放公共的头部参数, 和公共方法
- request.js 用于请求接口
- index.js 用于云函数的触发器配置运行的文件
代码都没啥,就是带参数请求接口,公共参数,主要是配置请求的 header;
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
接口请求,主要就是先获取指定城市的岗位列表,然后挨个打招呼;
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()
然后就是获取触发器中附加信息的主函数,通过获取附加信息中写的文件名,来调用指定文件,因为我还有发简历的文件,所以要区分下;
'use strict';exports.main_handler = async (event, context, callback) => { for (const v of event["Message"].split("rn")) { console.log(v); require(`./${v}.js`) }}
2
创建云函数
1. 直接首页搜索云函数
;
2. 进入控制台:https://console.cloud.tencent.com/scf
3. 创建云函数,创建方式选择自定义创建,运行环境选择 Node.js,函数代码我们直接选择上传文件夹,方便快捷啊,把我们的代码文件夹直接选中上传即可;
- 注意:这里的超时时间可以设置长一点,毕竟是接口请求,还是得花点时间的,设少了,还没请求完成,就给断了;
4. 接下来,配置触发器,选择定时触发,我们可以选择它写死的一些时间点,例如每一分钟,每一天等,也可以使用自定义触发周期,自己配置 cron 表达式,例如每天晚上九点就是 0 0 9 * * * *;
5. 最后,附加信息选择是,然后写我们要跑的文件名,即 request ;
6. 点击「完成」即可创建云函数,随后我们可以在列表中,查看到我们的云函数,进入详情,也可以修改代码并部署。
3
效果展示
Web Function 体验官召集令!
惊喜福利满满
(点击下图 ? 查看详情)
Web Function 使用体验
(请在 PC 端访问)
- Web Function 产品文档: https://cloud.tencent.com/document/product/583/56123
- Web Function 快速体验链接: https://console.cloud.tencent.com/scf/list-create?rid=16&ns=default&keyword=WebFunc
当前已在国内各大区域发布上线,欢迎体验使用!
推荐阅读
One More Thing
欢迎进入千人 QQ 群 (871445853) 交流 Serverless!
- GitHub: github.com/serverless
- 官网: cloud.tencent.com/product/serverless-catalog
点击「阅读原文」,了解更多 Web Function 产品详情。