Serverless 可以说是一种架构,一种云计算发展的产物,至于具体说什么是 Serverless,可能没有谁无法给一个明确的概念,大家可以简单粗暴的把 Serverless 认为是 BaaS + FaaS,如果用一张图来表示上面的描述,可以是:
AWS、Google Cloud、Azure、阿里云、腾讯云、华为云等在内的云厂商都提供Serverless服务,可以让开发者把精力更多放在 FaaS 层面,或者说是在函数计算层面。
接下来,让我们我们来以腾讯云为例,从0到1完成一个简单的“什么值得买”的自动签到工具,体验一下 Serverless。
注意,其他的云厂商也可以用相同的方式完成。
进入腾讯云控制台,选择云函数
点击函数服务-新建
创建方式-自定义创建
修改函数名称:smzdm_sign,然后点击【完成】
选择运行时(就是我们要用的编程语言)这里选择Python3.6:
到此,一个空白的函数已经创建完成,接下来我们进行代码编写
# -*- coding: utf8 -*-
import requests, json, time, os, sys
cookie = os.getenv("cookie_smzdm")
key = os.getenv("push_token")
def main(*arg):
try:
msg = ""
s = requests.Session()
s.headers.update({'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36'})
t = round(int(time.time() * 1000))
url = f'https://zhiyou.smzdm.com/user/checkin/jsonp_checkin?_={t}'
headers = {
"cookie" : cookie.encode("utf-8"),
'Referer': 'https://www.smzdm.com/'
}
r = s.get(url, headers=headers, verify=False)
if r.json()["error_code"] != 0:
msg += "smzdm cookie失效"
else:
msg += "smzdm签到成功"
except Exception as e:
print('repr(e):', repr(e))
msg += '运行出错,repr(e):'+repr(e)
return msg + "\n"
def smzdm_pc(*arg):
msg = ""
global cookie
if "\\n" in cookie:
clist = cookie.split("\\n")
else:
clist = cookie.split("\n")
i = 0
while i < len(clist):
msg += f"第 {i+1} 个账号开始执行任务\n"
cookie = clist[i]
msg += main(cookie)
i += 1
push(msg)
return msg
#push
def push(text):
headers = {
"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8",
"User-Agent":"MiFit/4.6.0 (iPhone; iOS 14.0.1; Scale/2.00)"
}
try:
url = "http://www.pushplus.plus/send?token=" + key + "&title=什么值得买&content=" + f'{text}' + "&template=html"
r = requests.get(url,headers=headers)
print(r.text)
except:
print("发送失败!")
else:
print("发送成功!")
if __name__ == "__main__":
if cookie:
print("----------什么值得买开始尝试签到----------")
smzdm_pc()
print("----------什么值得买签到执行完毕----------")
复制上述代码到刚才的函数编辑页面
替换执行方法为红框中的名字
•访问什么值得买,登录•点击个人中心,在新开的页面点击F12•找到user的请求,复制Cookie字段的内容
•访问push+,微信扫码登录
•复制你的token
选择【函数管理】-【函数配置】-【编辑】
新增环境变量【cookie_smzdm】、【push_token】
粘贴上一步的Cookie内容到环境变量【cookie_smzdm】中,粘贴push+的token到【push_token】中
cookie_smzdm:什么值得买网站的cookie,有了cookie我们的程序就不用每次都登录了 push_token:推送token
目前,我们已经完成了签到的所有内容,我们需要把我们的函数部署到云上。
接下来,我们测试一下看看效果。
点击【测试】
当看到下面的日志的时候,恭喜你,你的签到脚本已经顺利完成了,注意我没说“自动签到”,因为要“自动”,还需要一个步骤,我们继续。
所谓的触发器,是指我们的函数一般情况下都是“休息”的,只有在一个东西“触碰它”、“激活它”,它才会起来干活。那我们如何让刚才的脚本可以自动激活呢?
选择【触发管理】
修改【定时任务名称】和【触发周期】
到此,一个可以自动签到的脚本已经完成了,还不赶快去试试吧。
通过上面的教程,我们学会了利用腾讯云创建一个函数,并且学会了如何配置触发器,让脚本自动运行。我们使用Python作为脚本的语言,模拟登录,完成签到。
•1.通过F12(开发者工具)找到签到的请求:https://zhiyou.smzdm.com/user/checkin/jsonp_checkin?_=•2.拼接请求所需的参数
headers = {"cookie" :...
•3.模拟接口请求
推荐阅读
•入门 Serverless:如何实现 Hello World?
欢迎关注我的公众号“NullPointer”,原创技术文章第一时间推送。