Serverless的1001种玩法:什么值得买自动签到

什么是Serverless

Serverless 可以说是一种架构,一种云计算发展的产物,至于具体说什么是 Serverless,可能没有谁无法给一个明确的概念,大家可以简单粗暴的把 Serverless 认为是 BaaS + FaaS,如果用一张图来表示上面的描述,可以是:

Serverless的1001种玩法:什么值得买自动签到_第1张图片

AWS、Google Cloud、Azure、阿里云、腾讯云、华为云等在内的云厂商都提供Serverless服务,可以让开发者把精力更多放在 FaaS 层面,或者说是在函数计算层面。

接下来,让我们我们来以腾讯云为例,从0到1完成一个简单的“什么值得买”的自动签到工具,体验一下 Serverless。

注意,其他的云厂商也可以用相同的方式完成。

自动签到

新建函数

进入腾讯云控制台,选择云函数

Serverless的1001种玩法:什么值得买自动签到_第2张图片

点击函数服务-新建

Serverless的1001种玩法:什么值得买自动签到_第3张图片

创建方式-自定义创建

Serverless的1001种玩法:什么值得买自动签到_第4张图片

修改函数名称:smzdm_sign,然后点击【完成】

Serverless的1001种玩法:什么值得买自动签到_第5张图片

选择运行时(就是我们要用的编程语言)这里选择Python3.6:

Serverless的1001种玩法:什么值得买自动签到_第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("----------什么值得买签到执行完毕----------")

复制上述代码到刚才的函数编辑页面

替换执行方法为红框中的名字

Serverless的1001种玩法:什么值得买自动签到_第7张图片

获取cookie

•访问什么值得买,登录•点击个人中心,在新开的页面点击F12•找到user的请求,复制Cookie字段的内容

Serverless的1001种玩法:什么值得买自动签到_第8张图片

获取push token

•访问push+,微信扫码登录

Serverless的1001种玩法:什么值得买自动签到_第9张图片

•复制你的token

Serverless的1001种玩法:什么值得买自动签到_第10张图片

环境变量配置

选择【函数管理】-【函数配置】-【编辑】

Serverless的1001种玩法:什么值得买自动签到_第11张图片

新增环境变量【cookie_smzdm】、【push_token】

Serverless的1001种玩法:什么值得买自动签到_第12张图片

粘贴上一步的Cookie内容到环境变量【cookie_smzdm】中,粘贴push+的token到【push_token】中

cookie_smzdm:什么值得买网站的cookie,有了cookie我们的程序就不用每次都登录了 push_token:推送token

部署

目前,我们已经完成了签到的所有内容,我们需要把我们的函数部署到云上。

Serverless的1001种玩法:什么值得买自动签到_第13张图片

测试

接下来,我们测试一下看看效果。

点击【测试】

Serverless的1001种玩法:什么值得买自动签到_第14张图片

当看到下面的日志的时候,恭喜你,你的签到脚本已经顺利完成了,注意我没说“自动签到”,因为要“自动”,还需要一个步骤,我们继续。

触发器

所谓的触发器,是指我们的函数一般情况下都是“休息”的,只有在一个东西“触碰它”、“激活它”,它才会起来干活。那我们如何让刚才的脚本可以自动激活呢?

选择【触发管理】

Serverless的1001种玩法:什么值得买自动签到_第15张图片

修改【定时任务名称】和【触发周期】

Serverless的1001种玩法:什么值得买自动签到_第16张图片

Serverless的1001种玩法:什么值得买自动签到_第17张图片

到此,一个可以自动签到的脚本已经完成了,还不赶快去试试吧。

总结

通过上面的教程,我们学会了利用腾讯云创建一个函数,并且学会了如何配置触发器,让脚本自动运行。我们使用Python作为脚本的语言,模拟登录,完成签到。

•1.通过F12(开发者工具)找到签到的请求:https://zhiyou.smzdm.com/user/checkin/jsonp_checkin?_=•2.拼接请求所需的参数

headers = {"cookie" :...

•3.模拟接口请求

推荐阅读

•入门 Serverless:如何实现 Hello World?


欢迎关注我的公众号“NullPointer”,原创技术文章第一时间推送。

Serverless的1001种玩法:什么值得买自动签到_第18张图片

你可能感兴趣的:(serverless,serverless,云原生)