云函数实现网站自动化签到配置详解【Web函数/Nodejs/cookie】

一.前言

现在大多数的网站都有每日签到功能,坚持签到会给相应的奖励,然而我们每天都签到是非常的不容易,难免会出现忘记签到的情况,所以云函数就产生了。

像现在大厂给个人用户提供的免费额度已经足够我们使用了。

我们以某网站为例,配置过程如下。

二.配置脚本过程

2.1获取某网站的cookie

我们需要先获取某网站的cookie,推荐使用谷歌游览器。我们打开该网站,保证现在处于登录状态。我们随机的发起一个请求,抓包如下:

我们抓到了现在的cookie先复制下来备用。

2.2获取uuid、aid和_signature

我们访问该网站的签到页面,筛选:check

查看详细,点击payload,显示uuid、aid和_signature,如下备用。

复制好上面的uuid、aid和_signature和cookie之后,下面就是我们的脚本函数。

2.3 脚本函数

我们写一个如下的脚本函数:

执行文件为app.js。

配置文件在config.js。

我们进入config.js,修改一下参数配置;

module.exports = {
  cookie: '',
  PUSH_PLUS_TOKEN: '',
  aid: '',
  uuid: '',
  _signature: ''
}

2.4 注册plus

wx登录plus会获取到token,复制token。

这里的token对应着我们上文的的PUSH_PLUS_TOKEN。

2.5 配置config.js

如上,我们把上面步骤获取到的uuid、aid和_signature和cookie,放到config.js配置函数里。

如下:

三.部署脚本过程

创建云函数

版本选择:Nodejs12.16

选择事件函数

如下配置:

进入函数管理,部署事件函数:

配置触发器:每天早上9点自动签到。

点击测试,运行函数,检测部署是否有效。

测试截图:

测试成功,之后全自动的会每天9点准时签到领取奖励。nice

四,脚本代码分享

主要脚本代码,api已去掉。

const got = require('got')

const { cookie, aid, uuid, _signature, PUSH_PLUS_TOKEN } = require('./config')

const BASEURL = 'https:XXXX' 
const PUSH_URL = 'http:XXXXX' // 推送api

const URL = `${BASEURL}?aid=${aid}&uuid=${uuid}&_signature=${_signature}`
const DRAW_URL = `https:xxxxx`

const HEADERS = {
  cookie,
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67'
}

// 签到
async function signIn () {
  const res = await got.post(URL, {
    hooks: {
      beforeRequest: [
        options => {
          Object.assign(options.headers, HEADERS)
        }
      ]
    }
  })
  console.log(res.body)
  draw()
  if (!PUSH_PLUS_TOKEN) return
  handlePush(res.body)
}

async function draw () {
  const res = await got.post(DRAW_URL, {
    hooks: {
      beforeRequest: [
        options => {
          Object.assign(options.headers, HEADERS)
        }
      ]
    }
  })
  console.log(res.body)
}

// push
async function handlePush (desp) {
  const body = {
    token: `${PUSH_PLUS_TOKEN}`,
    title: `签到结果`,
    content: `${desp}`
  };
  const res = await got.post(PUSH_URL, {
    json: body
  })
  console.log(res.body)
}

signIn()
本文转载于网络 如有侵权请联系删除

相关文章

  • TencentOCR 斩获 ICDAR 2021 三项冠军

    作者:TencentOCR团队全球OCR最顶级赛事,TencentOCR以绝对领先优势斩获三冠,腾讯技术再扬威名!一、竞赛背景2021年9月,两年一届的ICDAR竞赛落下帷幕,这是文字识别(OCR)领域全球最顶级赛事。TencentOCR团队在本届比赛中参加了视频文字识别竞赛,并包揽该赛道全部3项冠军,成绩遥遥领先。这也是继2017年团队勇夺4项官方认证冠军[1]、2019团队勇夺7项冠军后[2],再创佳绩,同时也标志着腾讯OCR技术稳居国际第一流水准。 国际文档分析与识别大会ICDAR(InternationalConferenceonDocumentAnalysisandRecognition)自1991年开始,每两年一届,今年为第十六届。自2003年大会开始设立技术竞赛,ICDAR竞赛因其极高技术难度和强大实用性,一直是各大科研院校、科技公司的竞逐焦点。与赛后非正式刷榜不同,ICDAR官方认证的正式竞赛采用全新数据集,且赛期内不公布参赛团队信息,限制提交时间和次数,属于高难度“盲打”,吸引国内外众多队伍参赛。 二、赛题介绍ICDARSVTS(场景视频文本定位)竞赛由海康威视、复旦

  • 2021-10-06:二叉树的锯齿形层序遍历。给定一个二叉树,返

    2021-10-06:二叉树的锯齿形层序遍历。给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。力扣103。福大大答案2021-10-06:自然智慧即可。层次遍历。时间复杂度:O(N)。空间复杂度:O(N)。代码用golang编写。代码如下:packagemain import"fmt" funcmain(){ head:=&TreeNode{} head.val=3 head.left=&TreeNode{} head.left.val=9 head.right=&TreeNode{} head.right.val=20 head.right.left=&TreeNode{} head.right.left.val=15 head.right.right=&TreeNode{} head.right.right.val=7 ret:=zigzagLevelOrder(head) fmt.Println(ret) } typeTreeNodest

  • NVIDIA Nsight-Compute性能勘测器

    首先开普勒 Maxwell 帕斯卡的构架都不支持。 费米的构架就更不要想了https://docs.nvidia.com/nsight-compute/2020.3/ReleaseNotes/index.html复制也有详细的文档https://docs.nvidia.com/nsight-compute/2020.3/ProfilingGuide/index.html复制这个是软件系统运行的时候的一个原理图另外一个我的GPU不是支持的构架,我卸载了 卸载了,我都用不上就是这个软件是目前,英伟达官网里面最强大的调试器。但是只使用于最强大的GPU,但是最新的GPU价格不亲民。所以我只能就此作罢了~

  • 我终于弄懂了Python的装饰器(二)

    二、装饰器的高级用法将参数传递给装饰函数#它不是黑魔法,只是给包装(wrapper)传递参数: defa_decorator_passing_arguments(function_to_decorate): defa_wrapper_accepting_arguments(arg1,arg2): print("Igotargs!Look:{0},{1}".format(arg1,arg2)) function_to_decorate(arg1,arg2) returna_wrapper_accepting_arguments #因为当您调用装饰器返回的函数时,调用的包装器(wrapper),将参数传递给被包装器包装的函数 @a_decorator_passing_arguments defprint_full_name(first_name,last_name): print("Mynameis{0}{1}".format(first_name,last_name)) print_full_name("Peter",&

  • Hive 创建外部表 原

    1.将数据上传至hdfshdfsdfs-putstocks/user/bigdata复制2.创建外部表createexternaltableifnotexistsstocks_external( ymddate, price_openfloat, price_highfloat, price_lowfloat, price_closefloat, volumeint, price_adj_closefloat ) partitionedby(exchangerstring,symbolstring) rowformatdelimitedfieldsterminatedby',' location'/user/bigdata/stocks';复制3.载入数据altertablestocks_externaladdpartition(exchanger="NASDAQ",symbol="AAPL") location'/user/bigdata/stocks/NASDAQ/AAPL'; a

  • sharding-jdbc之——分库分表实例

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79368021一、概述之前,我们介绍了利用Mycat进行分库分表操作,Mycat分表操作是利用分库来进行的,单个库中的分表操作可结合MySQL的分区进行,这也是Mycat官方提倡的方式。那么,如何利用Mycat真正实现数据库的分库分表,可以私信我。今天,我们来看看sharding-jdbc,sharding-jdbc也是一款分库分表的“中间件”,不过,它并不向Mycat那样作为一个真正的中间件,它是一款以jar包的形式整合到业务中的插件,这就决定了它是轻量级的,用法也是十分简单的。二、分库分表实战接下来,我们就利用sharding-jdbc进行数据库的分库分表操作。1、创建数据库首先我们创建相应的数据库createdatabasesharding_0; createdatabasesharding_1;复制这样我们就创建了两个数据库sharding_0和sharding_1;接下来我们在两个库中创建相应的数据表,在两个库中分别进行如下SQL:SETFOREIGN_KEY_

  • 【北马助跑】KDD 2017:体育运动分析中的数据挖掘与机器学习

    【新智元导读】北京马拉松今天正在如火如荼地跑着,AI在体育产业的应用越来越受到关注。这篇文章是对KDD2017上一篇《Athlytics:体育运动分析中的数据挖掘与机器学习》的解析,探讨在球类比赛中对数据进行挖掘和分析,提高球队价值的技术手段。论文&PPT:http://www.pitt.edu/~kpele/kdd2017-tutorial.html很早以前看过一部体育题材的电影《点球成金》,英文名MoneyBall。片子讲述了布拉特皮特饰演的球队总经理和耶鲁大学经济系毕业的数据分析师一起通过对棒球比赛数据进行挖掘和分析,淘宝联盟里性价比高、拥有一技之长的球员组队,进而取得成功的光荣事迹。该片充分展现了利用数据来提升球队的价值和意义,令人印象非常深刻。一直想对其中用到的技术手段一探究竟,而KDD2017上的《Athlytics:DataMiningandMachineLearningforSportsAnalytics》这个topic实在是再合适不过了。这个讲座由KonstantinosPelechrinis(UniversityofPittsburgh),Evangelos

  • 十五分钟让你快速学习Markdown语法到精通排版实践

    [TOC]0x00前言简述Markdown初识描述:Markdown是一种轻量级标记语言于2004年推出,创始人为约翰·格鲁伯(JohnGruber)。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。Markdown的目标是实现「易读易写」,通过在文档中的某部分加入特殊的字符,用来修饰文档中的文本,博主使用Markdown一段时间以后,才发现Markdown原来那么强大有用、并且能提升工作效率,比如:github、stackoverflow、技术论坛写博客、写日记、电子书编辑微信公众号文章编辑日常技术文章所以博主将常用的Markdown语法整理处理,方便大家入门学习以及备忘。本文来源:https://blog.weiyigeek.top:cat:Markdown特点描述:由Markdown语法的目标是:成为一种适用于网络的书写语言,对于我们来说它是兼容HTML的。其主要特点(轻量化、跨平台、易读易写)Markdown不是想要取代HTML,甚至也没有要和它相近,它的语法种类很少,只对应HTML标记的一小部分,Markdown的构想不是要使得HT

  • java对象和类

    Java作为一种面向对象语言。支持以下基本概念:多态继承封装抽象类对象实例方法重载java对象(此对象非彼对象):对象有行为和属性例如:一个人是一个对象人有开门关门等行为人有名字性别等属性复制java类:类是一个模板,它描述一类对象的行为和状态下图中男孩(boy)、女孩(girl)为类(class),而具体的每个人为该类的对象(object):java类的语法定义类的语法:class类名{ 属性 方法 }复制类名:首字母大写的驼峰模式XxxYyy,例如classTeacher{},classStudent{}classSchoolMaster{},类名要见名之意。创建类的时候要注意:1.类名的和文件名没有任何关系,前提是class类前面不要加pubic,如果加上public代表这个类是主类。2.如果在定义类的时候publicclassTeacher{}这个类就是主类。一个java文件中只能有一个主类。而且这个文件名字必须要和主类名字一致。java创建对象的方法基本语法:类变量名=new类();例如Personpeople=newPerson();people.name="桃李

  • 第37篇

    1、手写数组快速排序 1varquickSort=function(arr){ 2if(arr.length<=1){ 3returnarr; 4} 5 6varpivotIndex=Math.floor(arr.length/2); 7varpivot=arr.splice(pivotIndex,1)[0]; 8varleft=[]; 9varright=[]; 10for(vari=0;i<arr.length;i++){ 11if(arr[i]<pivot){ 12left.push(arr[i]); 13}else{ 14right.push(arr[i]); 15} 16} 17 18returnquickSort(left).concat([pivot],quickSort(right)); 19}复制   2、判断一个字符串中出现次数最多的字符,并统计次数 1varstr="shdshdfjkfjfdgjkjdksgjskdjfsfsfsfjksjkfdkjf"; 2vararr=str.split("").sort();//把字符串变为

  • 使用cordova打包vue2(webpack)app for android ios

    1、vue项目 通过vue-cli脚手架建立项目,使用webpack进行打包,下边是一整套命令。 #npm版本最好是最新的,升级npm,node版本也有要求 npmi-gnpm #安装脚手架 npminstall-gvue-cli #初始化新建项目 vueinitwebpackvue-app #installdependencies #config/index.js里可以修改端口 npminstall #servewithhotreloadatlocalhost:8080 npmrundev #打包项目 npmrunbuild #buildforproductionandviewthebundleanalyzerreport npmrunbuild--report复制 在index.html加入如下标签,不让他放大缩小 <metaname="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no

  • el-table的fixed固定列属性导致数据错位

    发生错位的原因:table在数据请求后,渲染异常的问题,解决办法就是让table重新布局。 这里官方提供了doLayout方法,来解决重新布局的问题   (不过好像不适合表尾合计的table,我之前初步尝试过,但是发现有表尾合计行的还是会有点奇怪,所以有表尾合计的暂时放弃了,改用后端合计) 例子: 在请求得到数据的时候,用nextTick对table的DOM重新渲染。 this.$nextTick(()=>{ this.$refs.multipleTable.doLayout(); //el-table加ref="multipleTable" });复制   参考链接:https://blog.csdn.net/Scott_zt/article/details/106701553  

  • 【Office软件】【word】优化word,降低其运行等待时间

    近期编辑文档,文档较大10.6MB,550页,14万字;图片稍多 环境:Windows10X64教育版  Office201964bit 计算机配置还可以,不算太差;  16G内存,磁盘读写500Mbps,CPUIntelI7  现象: 编辑过程非常卡,粘贴、修改文档字体格式等操作都需要卡个五六秒,实在忍不了了; 于是在网上找了些优化Office的方法;   关闭拼写和语法检查 在“文件”-- “选项”中的“校对”,修改为以下配置:          修改自动更正为如下:   修改自动保存:         关闭自动压缩图片 取消多余的加载项,   先在菜单栏中加上“开发工具”菜单       然后在主菜单上点击“开发工具”---“加载项”,       修改加载项为:       结论:优化了后,发现word还是很卡,待查找原因; &n

  • 我在人间凑数的日子---网恋篇(一)

    导语 本文纯属虚构,请勿联系实际生活,部分内容可能引用,如有侵权联系删除。 复制 本篇涉及知识点如下: 1.web服务搭建 2.html页面编写,获取IP,简单加密 3.短网址伪装 4.二维码伪装 5.高精度定位 6.二维码检测绕过与思路拓展 7.微信好友申请与聊天拉扯 复制 正文 每天早上都想干翻这个世界,晚上回到家被这个世界干的服服帖帖,被生活疯狂折磨,但依然热爱生活。 复制 一觉醒来,发现今天并没有发生改变,于是准备找朋友沟通一下感情。 一、web服务搭建 1.安装web服务 使用ubuntu安装nginx #切换至root用户 sudosuroot apt-getinstallnginx 复制 2.命令执行完毕后,查看是否安装成功 nginx-v 复制 3.启动nginx servicenginxstart 复制 启动后,在网页重输入ip,即可看到nginx的欢迎页面,至此nginx安装成功. 4.默认存放日志目录:/var/log/nginx/ access.log文件为访问日志,会记录访问的IP地址 5.只要将特定的地址发送给目标访问,之后查看日志即可。 二

  • 算法第五章实践报告

    1.请用回溯法的方法分析“最小重量机器设计问题 #include<iostream>usingnamespacestd;intn,m,d;intw[40][40];//重量intc[40][40];//价格intbestx[40];//最优解intx[40];//当前解intcw=0,cc=0,mw=9999999;//当前重量当前价格当前解voidBacktrack(intdepth){if(depth>n){//找到根节点if(cw<mw){//当前值小于最小值for(inti=1;i<=n;i++)bestx[i]=x[i];mw=cw;}return;}for(inti=1;i<=m;i++){//m个商店对应n层分叉树x[depth]=i;cc+=c[depth][i];cw+=w[depth][i];if(cc<=d&&cw<mw){//当前价格小于最优价格当前重量小于最优重量Backtrack(depth+1);}x[depth]=0;//回溯更新信息cc-=c[depth][i];cw-=w[depth][

  • 使用YCSB测试mongodb

    项目里面需要对mongodb的性能进行测试,看了下网上很多做法都是使用YCSB进行测试,因此开始学习使用YCSB。  参考资料: YCSBgithub地址:https://github.com/brianfrankcooper/YCSB  wiki: https://github.com/brianfrankcooper/YCSB/wiki  安装参考:https://github.com/brianfrankcooper/YCSB/tree/master/mongodb  之前的一些测试经验:http://www.sdpnosql.net/index.php/archives/3/   http://www.sdpnosql.net/index.php/archives/13/ 1安装 基于参考文档(https://github.com/brianfrankcooper/YCSB/tree/master/mongodb )安装java,mvn,ycsb 基本上安装了python(2

  • 项目使用Kafka镜像报错处理记录:this server does not host this topic-partition

    背景 项目使用dockerswarm部署 服务之间使用消息中间件kafka通信 Kafka使用star3.7k的wurstmeister/kafka:2.12-2.2.1镜像 Zookeeper使用zookeeper:3.5.5镜像 问题描述 每当Kafka和Zookeeper服务重启后,项目就会报以下错误: org.apache.kafka.common.errors.UnknownTopicOrPartitionException: Thisserverdoesnothostthistopic-partition 复制 由于是开发环境,之前每次遇到这种问题,都是粗鲁的直接清掉Kafka和Zookeeper的存储文件,随后重启就工作正常。 在切CICD环境之前,我们一直使用物理机部署程序在跑,在物理机上安装的Kafka和Zookeeper,项目运行了一年多从来没出现过这种问题。 排查问题 首先仔细阅读了kafka镜像的readme文件,问题出现在下面这块: Bydefaulteachbrokerwillgetanewportnumberandbrokeridonrestart.D

  • having和where的区别

    本质的区别就是where筛选的是数据库表里面本来就有的字段,而having筛选的字段是从前筛选的字段筛选的。 where和having都可以使用的场景:   selectgoods_price,goods_namefromsw_goodswheregoods_price>100 selectgoods_price,goods_namefromsw_goodshavinggoods_price>100 原因:goods_price作为条件也出现在了查询字段中。   只可以使用where,不可以使用having的情况:   selectgoods_name,goods_numberfromsw_goodswheregoods_price>100 selectgoods_name,goods_numberfromsw_goodshavinggoods_price>100(X) 原因:goods_price作为筛选条件没有出现在查询字段中,所以就会报错。 having的原理是先select然后从select出来的进行筛选。而where是先筛

  • kafka源码环境搭建

    1.准备工作 1.1安装好jdk、scalasdk 1.2安装好gradle 1.3本地安装好zookeeper并运行;这里使用zookeeper-3.3.6版本 2.下载源码 为了更好的追踪源码和版本管理,我们不去kafka官网下载源码,可以直接去githubclonekafka的源码。github地址是:https://github.com/apache/kafka。 2.1clone源码到本地目录 gitclonehttps://github.com/apache/kafka.git 2.2等待源码下载完毕。进入源码目录 cdkafka 2.3kafka源码以tag作为一个版本的发布,运行命令gittag看下所有的tag gittag 2.4checkout到0.10.0.0版本 gitcheckout0.10.0.0 3.编译 3.1为了避免网络限制等,我们可以先修改下build.gradle中的仓库地址,即在如图位置加入如下代码 mavenLocal() maven{ url"http://maven.aliyun.com/nexus/cont

  • 09:Python之字符串

     

  • 常见的http状态码

      推荐一个在线工具,包括很多线上的前端工具,感觉挺不错的。直接贴网址:http://tool.lu/httpcode/   好吧,最近在准备实习面试,有点小紧张,把http状态码总结下吧,很多都在考。 下面是些经常考的错误码: 403  客户端没有权利访问所请求内容,服务器拒绝本次请求. 302  该状态码表示所请求的URI资源路径临时改变,并且还可能继续改变.因此客户端在以后访问时还得继续使用该URI.新的URL会在响应的Location:头字段里找到. 304  告诉客户端,所请求的内容距离上次访问并没有变化.客户端可以直接从浏览器缓存里获取该资源. 303  服务器发送该响应用来引导客户端使用GET方法访问另外一个URI. 404  服务器找不到所请求的资源.由于经常发生此种情况,所以该状态码在上网时是非常常见的. 500  服务器遇到未知的无法解决的问题. 502  服务器作为网关且从上游服务器获取到了一个无效的HTTP响应.   http状态码有很多,很难记住,所以除了记住上面那些常用的,还要知道大致的信息: 1开头  表示消息响应,只有两个。 2开头&

相关推荐

推荐阅读