【玩转云函数】腾讯云函数帮我定时和 HR 打招呼,找工作不再愁!

2021-07-20 19:10:44 浏览数 (1)

以下内容来自「玩转腾讯云」用户原创文章,已获得授权。

最近看很多人跑路,所以就想着造福自己,想去自动的在某招聘软件中跟 HR 打招呼,由于买个服务器来单独配个 corntab 确实有点浪费,所以就选择了云函数,毕竟云函数的免费额度够用了。

所以,开始吧!

1

脚本编写

我使用的是 Node.js 进行编写,总共文件分为三个:

  • 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

创建云函数

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 产品详情。

0 人点赞