以下內容來自「玩轉騰訊雲」用戶原創文章,已獲得授權。
<img src="https://z3.ax1x.com/2021/06/30/RDauGD.png" width="700"/>
最近看很多人跑路,所以就想着造福自己,想去自動的在某招聘軟件中跟 HR 打招呼,由於買個服務器來單獨配個 corntab 確實有點浪費,所以就選擇了雲函數,畢竟雲函數的免費額度夠用了。
所以,開始吧!
01. 腳本編寫
我使用的是 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("\r\n")) {
console.log(v);
require(`./${v}.js`)
}
}
02. 創建雲函數
- 直接首頁搜索
雲函數
- 進入 雲函數控制檯
- 創建雲函數,創建方式選擇自定義創建,運行環境選擇 Node.js,函數代碼我們直接選擇上傳文件夾,方便快捷啊,把我們的代碼文件夾直接選中上傳即可;
- 注意:這裏的超時時間可以設置長一點,畢竟是接口請求,還是得花點時間的,設少了,還沒請求完成,就給斷了;
-
接下來,配置觸發器,選擇定時觸發,我們可以選擇它寫死的一些時間點,例如每一分鐘,每一天等,也可以使用自定義觸發週期,自己配置cron表達式,例如每天晚上九點就是
0 0 9 * * * *
; -
最後,附加信息選擇
是
,然後寫我們要跑的文件名,即request
- 點擊「完成」即可創建雲函數,隨後我們可以在列表中,查看到我們的雲函數,進入詳情,也可以修改代碼並部署。
03. 效果展示
Web Function 體驗官招募令
<img src="https://main.qcloudimg.com/raw/545c2c8589959c675b8c501e8b41e363.png" width="700"/>
Web Function 使用體驗
-
Web Function 產品文檔:
-
Web Function 快速體驗鏈接:
https://console.cloud.tencent.com/scf/list-create?rid=16&ns=default&keyword=WebFunc
當前已在國內各大區域發佈上線,歡迎體驗使用!
<img src="https://main.qcloudimg.com/raw/4ee70db1b518d4c0064711d1caf1572c.jpg" width="700"/>
One More Thing
立即體驗騰訊雲 Serverless Demo,領取 Serverless 新用戶禮包 👉 騰訊雲 Serverless 新手體驗
歡迎訪問:Serverless 中文網!