抽奖助手自动参与抽奖

2023-05-16

无码科技开发了一个抽奖的小程序,里面有一些赞助商提供的抽奖,但是每次都要一个一个的点才能参与,很麻烦。参考了网上的一些教程,写了一个脚本,可以不用一个一个地点就可以参与抽奖。

过程的话主要是

  • 抓包,分析如何获取奖品列表,分析如何提交参与抽奖。
  • 模拟小程序发送的请求,参与抽奖。

抓包的话,这个就不详细讲,最近也是在摸索,等有空了出个图文教程。这里先说个结论吧。

获取每日抽奖的奖品

https://lucky.nocode.com/public_lottery?page=1&size=5

用的 GET 方法请求的,需要注意的是请求的 headers , 因为无码可见会 headers 里面的一些用户信息。headers 的话可以通过抓包工具分析。

这里贴下我的代码


import time
import requests
from requests import Request, Session
import urllib3
urllib3.disable_warnings()

class NoCode:
    headers = {
        'charset': 'utf-8',
        'Accept-Encoding': 'gzip',
        'authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV...', # 这里注意替换为你自己的 authorization
        'version': '0.1.76',
        'content-type': 'application/json',
        'User-Agent': 'Mozilla/5.0 (Linux; Android 7.0; MI 5s Plus Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/68.0.3440.91 Mobile Safari/537.36 MicroMessenger/6.7.2.1340(0x26070233) NetType/WIFI Language/zh_CN',
        'Host': 'lucky.nocode.com',
        'Connection': 'Keep-Alive'
    }

    session = Session()

    def get_daily_products(self):
        print('get daliy prodeucts')
        daliy_url = 'https://lucky.nocode.com/public_lottery?page=1&size=5'
        req = Request('GET',daliy_url, headers=self.headers).prepare()
        response = self.session.send(req)
        if response.status_code == 200:
            for product in response.json()['data']:
                if not product['joined'] :
                    print('find:', product['id'],product['prizes']['data'][0]['name'])
                    # yield product['id'], product['prizes']['data'][0]['name']
                    self.jioned_product(product['prizes']['data'][0]['name'], product['id'])
        else:
            print(r'请求失败,状态码为%s' % response.status_code)

参与某个奖品的抽奖

通过抓包可以知道,参与抽奖的 url 是:

https://lucky.nocode.com/lottery/{product_id}/join

product_id 是这个奖品的 id , 可以通过获取抽奖奖品列表的时候获取。同样需要注意的是 headers ,因为里面保存了你的登录信息等。

特别说明的是,这个方法是用 POST 来请求的,需要注意一下。下面贴下我的代码

    def jioned_product(self, params):
        print('start jion the product', params[1])
        url = 'https://lucky.nocode.com/lottery/%s/join' % params[0]
        datas = {
            'form_id': "%s" % int(time.time()*1000)
        }
        print('url:', url, 'datas:', datas)
        req = Request('POST',url, data=datas, headers=self.headers).prepare()
        del req.headers['content-length']
        response = self.session.send(req)
        response = response.json()
        if response.get('data', False):
            print(r'抽奖成功')
        else:
            print(r'抽奖失败')

这里有个坑需要特别说明下,在参与抽奖的这个请求里面, headers 里面不能有 content-length ,否则会请求失败,原因未知,解决的办法就是删掉 content-length

获取自助福利并参与

老规矩,先上代码

    def get_square_products(self, url):
        if url == "": url = 'https://lucky.nocode.com/square'
        print(url)
        req = Request('GET', url, headers=self.headers).prepare()
        response = self.session.send(req)
        if response.status_code != 200: return
        response = response.json()
        for product in response['data']:
            if not product['joined'] :
                print('find square products:', product['id'], product['prizes']['data'][0]['name'])
                # yield product['id'], product['prizes']['data'][0]['name']
                self.jioned_product(product['prizes']['data'][0]['name'], product['id'])
        nextUrl = response['links']['next']
        if nextUrl != None :
            self.get_square_products( "https://lucky.nocode.com%s" % nextUrl)

自助福利是分页的,所有后面有个递归调用。然后最开始的 url 是 https://lucky.nocode.com/square,请求这个 api 以后,会返回自助福利列表,如果有下一页的话就请求下一页的 url ,解析出来奖品后参与抽奖。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

抽奖助手自动参与抽奖 的相关文章

  • 35(牛客Top100)-84.柱状图中最大的矩形

    给定 n 个非负整数 xff0c 用来表示柱状图中各个柱子的高度 每个柱子彼此相邻 xff0c 且宽度为 1 求在该柱状图中 xff0c 能够勾勒出来的矩形的最大面积 思路 xff1a 方法1 xff1a 栈 43 邵兵 span clas
  • 36(牛客Top100)-85.最大矩阵

    给定一个仅包含 0 和 1 大小为 rows x cols 的二维二进制矩阵 xff0c 找出只包含 1 的最大矩形 xff0c 并返回其面积 思路 xff1a 先抄下来 xff0c 我也不懂 方法1 xff1a 单调栈 span clas
  • 新建springboot项目

    1 新建项目 xff0c 选择Spring Initializr 2 直接finish xff0c 然后就等待下载各种包 xff0c 大约10分钟左右 3 包变绿后 xff0c pom xml中导入web依赖 span class toke
  • springboot整合mybatis实现增删改查

    1 新建springboot项目 xff0c 连接数据库 2 导入依赖 span class token generics span class token punctuation lt span dependencies span cla
  • 37(牛客Top100)-94.二叉树的中序遍历

    给定一个二叉树的根节点 root xff0c 返回它的 中序 遍历 思路 xff1a 方法1 xff1a 递归 按照访问左子树 根节点 右子树的方式遍历这棵树 span class token keyword public span spa
  • 38(牛客Top100)-96.不同的二叉搜索树

    给你一个整数 n xff0c 求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种 xff1f 返回满足题意的二叉搜索树的种数 思路 xff1a 1 动态规划 动态方程 xff1a span class token
  • 40(牛客Top100)-101.对称二叉树

    给定一个二叉树 xff0c 检查它是否是镜像对称的 思路 xff1a 方法1 xff1a 递归 span class token keyword public span span class token keyword boolean sp
  • 39(牛客Top100)-98.验证二叉搜索树

    给你一个二叉树的根节点 root xff0c 判断其是否是一个有效的二叉搜索树 有效 二叉搜索树定义如下 xff1a 节点的左子树只包含 小于 当前节点的数 节点的右子树只包含 大于 当前节点的数 所有左子树和右子树自身必须也是二叉搜索树
  • Excel合并计算完成多表格数据汇总求和

    Excel合并计算完成多表格数据汇总求和 多表格数据汇总可以使用透视表 xff0c 使用函数 xff0c 今天读书屋OFFICE网陈飞老师分享一个通过合并计算完成多表格数据汇总方法 xff0c 合并计算分为两种情况 xff0c 一种情况是
  • Google Datastore 学习记录

    由于在google app engine 使用google cloud sql 是要收费的 xff0c 于是学习一下google提供的免费的非关系型数据库datastore 它的特点有 xff1a No planned downtime x
  • 41(牛客Top100)-104.二叉树的最大深度

    给定一个二叉树 xff0c 找出其最大深度 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数 说明 叶子节点是指没有子节点的节点 思路 xff1a 方法1 xff1a 深度优先搜索 span class token keyword p
  • 42(牛客Top100)-102.二叉树的层序遍历

    给你一个二叉树 xff0c 请你返回其按 层序遍历 得到的节点值 xff08 即逐层地 xff0c 从左到右访问所有节点 xff09 思路 xff1a 用队列按层次遍历 方法1 xff1a 广度优先搜索 span class token k
  • MySQL总结

    1 数据库基础知识 1 1 什么是MySQL MySQL是一个关系型数据库管理系统 xff0c MySQL是最好的 RDBMS Relational Database Management System xff0c 关系数据库管理系统 应用
  • 45(牛客Top100)-121.买卖股票的最优时间

    给定一个数组 prices xff0c 它的第 i 个元素 prices i 表示一支给定股票第 i 天的价格 你只能选择 某一天 买入这只股票 xff0c 并选择在 未来的某一个不同的日子 卖出该股票 设计一个算法来计算你所能获取的最大利
  • 47(牛客Top100)-128.最长连续子序列

    给定一个未排序的整数数组 nums xff0c 找出数字连续的最长序列 xff08 不要求序列元素在原数组中连续 xff09 的长度 请你设计并实现时间复杂度为 O n 的算法解决此问题 思路 xff1a 方法1 xff1a 利用set集合
  • 48(牛客Top100)-136.只出现一次的数字

    给定一个非空整数数组 xff0c 除了某个元素只出现一次以外 xff0c 其余每个元素均出现两次 找出那个只出现了一次的元素 说明 xff1a 你的算法应该具有线性时间复杂度 你可以不使用额外空间来实现吗 xff1f 思路 xff1a 方法
  • stc-isp 51单片机烧录软件的安装

    stc isp的获取 百度网盘链接 xff1a https pan baidu com s 1vDTN2o8ffvczzNQGfyjHng 提取码 xff1a gdzf stc isp安装 此软件是绿色软件 xff0c 双击直接运行即可 开
  • 实习日记。。。

    第一周 第一天7 11 周一 入职第一天 xff0c 一直在数据库建表 xff0c 写了二十来个 xff0c 还有领了工卡和饭卡 xff0c 带我的老大哥请我恰了一顿 xff0c 晚上下班的时候 xff0c 因为舍不得我的电脑所以多待了一个
  • TCP/IP协议栈Lwip的设计与实现:之三

    接上文 xff1a TCP IP协议栈Lwip的设计与实现 xff1a 之二 龙赤子的博客 CSDN博客 目录 10 xff0e TCP处理 10 1概述 10 2数据结构 10 3序列号计算 10 4数据入队和传输 10 5接收段数据 1

随机推荐

  • c++——Unicode编码和多字节编码的区别

    1 VS项目属性不同字符集的区别 单字节字符集 xff1a 顾名思义 xff0c 单字节字符集就是用一个字节表示一个字符 xff0c 简称SBCS ASCII就是单字节字符集 在编码的过程中char类型就是单字节编码 Unicode字符集
  • 蓝桥杯 例题 切割矩形

    include lt bits stdc 43 43 h gt using namespace std int ans 61 0 int f int a int b ans 43 43 if a 61 61 1 amp amp b 61 6
  • c++——Unicode、UTF-8、UTF-16

    计算机起源于美国 xff0c 上个世纪 xff0c 他们对英语字符与二进制位之间的关系做了统一规定 xff0c 并制定了一套字符编码规则 xff0c 这套编码规则被称为ASCII编码 ASCII 编码一共定义了128个字符的编码规则 xff
  • spark MLlib之分类和回归

    MLlib支持多种方法用来处理二分分类 xff0c 多类分类以及回归分析 xff0c 下表列出了问题及对应的处理方法 xff1a 问题类型 支持的方法 二分分类 现行SVM xff0c 逻辑回归 xff0c 决策树 xff0c 贝叶斯 多类
  • 生产者消费者模型详解以及实现

    生产者消费者模式 我们先来看看什么是生产者消费者模式 xff0c 生产者消费者模式是程序设计中非常常见的一种设计模式 xff0c 被广泛运用在解耦 消息队列等场景 在现实世界中 xff0c 我们把生产商品的一方称为生产者 xff0c 把消费
  • 高频面试点:静态链接库与动态链接库

    库是写好的现有的 xff0c 成熟的 xff0c 可以复用的代码 现实中每个程序都要依赖很多基础的底层库 xff0c 不可能每个人的代码都从零开始 xff0c 因此库的存在意义非同寻常 本质上来说库是一种可执行代码的二进制形式 xff0c
  • cordova打包app热更新问题

    定义 xff1a 基于 cordova 框架能将web应用 js html css 图片等 打包成 App 当 App 在终端上安装后 xff0c 不需要重新下载app xff0c 实现内壳更新 原理 xff1a 1 在项目根目录的conf
  • 一文解决 Python读取文件的全部知识

    文件是无处不在的 xff0c 无论我们使用哪种编程语言 xff0c 处理文件对于每个程序员都是必不可少的 文件处理是一种用于创建文件 写入数据和从中读取数据的过程 xff0c Python 拥有丰富的用于处理不同文件类型的包 xff0c 从
  • 总结实验室对转录组及lncRNA数据分析的思路

    继师兄详细地讲述这个思路之后 xff0c 我进行一个归纳总结 xff08 师兄说 xff0c 首先要建立一个思想上的流程 xff0c 再来纠结软件 命令这些细节 xff01 xff01 xff01 xff01 xff01 xff01 xff
  • Android 高通7.1系统默认横屏显示(无G-sensor)

    竖屏横用 xff0c logo用的还是竖屏资源 1 添加宏控制 device qcom msm8909 system prop span class token comment add start span persist span cla
  • Android11 授权应用获取IMEI号和ICCID

    在Android11上获取IMEI号等设备信息需要android permission READ PRIVILEGED PHONE STATE权限 xff0c 而这个权限又只授予系统级应用 项目中如果targetSdkVersion值小于2
  • Enum枚举前后端传输展示方案

    1 定义枚举类型 public enum RolesTypeEnum implements Enumerator MANAGER 34 管理员 34 0 BUSINESS 34 招商员工 34 1 PROPERTY 34 物业员工 34 2
  • 蓝桥杯2018年第九届真题-递增三元组-题解(C语言代码)

    include lt bits stdc 43 43 h gt using namespace std const int MAXN 61 100005 int a MAXN b MAXN c MAXN int n sum int main
  • Altium Designer 推挤布线

    在进入交互式布线模式时按 TAB 键进入属性对话框 xff0c 在 Current Mode 参数项中选择Push Obstacles 模式 xff0c 然后点击 OK 退出设置这时将进入挤推布线模式 xff0c 它可以帮你自动移开遮挡的导
  • 范数及其意义

    什么是范数 xff1f 范数 Norm 是具有度量性质的函数 xff0c 它经常使用来衡量矢量函数的长度或大小 xff0c 是泛函分析中的一个基本概念 要更好的理解范数 xff0c 就要从函数 几何与矩阵的角度去理解 xff0c 我们都知道
  • cmd的炫酷玩法教程

    在我们看电影的时候 xff0c 经常看到黑客在电脑是一顿猛如虎的操作 然后电脑上就出现一系列花里胡哨的画面 xff0c 其实那种画面我们用cmd的一行代码就能搞定 第一步 按Win 43 R xff0c 输入cmd xff0c 打开小黑框
  • Java里面关于currentTimeMilllis()方法

    关于currentTimeMillis 方法的一些说明 很多的朋友在刚开始接触long这个数据类型的时候 xff0c 就会被引导去接触一个叫做currentTimeMillis 的方法 xff0c 看名字貌似很复杂的样子 xff0c 其实很
  • ubuntu安装nodejs的正确方式

    sudo apt get remove nodejs sudo apt get remove npm curl o https raw githubusercontent com nvm sh nvm v0 39 2 install sh
  • Android Studio 3.+ 使用gradle配置动态修改包名、图标、常量等,实现动态配置编译不同包名的APP和多渠道打包

    Android Studio 3 1 3 43 gradle 4 4 43 build gradle 3 1 3 示例代码已上传github https github com weixx gradle package 配置差别化渠道包 ap
  • 抽奖助手自动参与抽奖

    无码科技开发了一个抽奖的小程序 xff0c 里面有一些赞助商提供的抽奖 xff0c 但是每次都要一个一个的点才能参与 xff0c 很麻烦 参考了网上的一些教程 xff0c 写了一个脚本 xff0c 可以不用一个一个地点就可以参与抽奖 过程的