某东抢购某台脚本——高成功率

2024-05-13 14:12

本文主要是介绍某东抢购某台脚本——高成功率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

某东抢购某台脚本——高成功率

小白操作-仅供学习参考

在这里插入图片描述

说明

这段代码主要关联了许多网络请求和对应的业务逻辑处理,用于处理与一个名为“茅台商城”的应用相关的网络操作。主要功能和关键组件的详细说明如下:

  1. 全局变量和配置:
  • 使用AES加密密钥(AES_KEY)、初始向量(AES_IV)和一个盐值(SALT)用于加密相关操作。

  • 定义了当前时间戳current_time和一组请求头headers

  • 从苹果应用商店拉取并解析应用的当前版本号。

  1. 初始化请求头:
  • init_headers函数通过解析一个多行的字符串header_context来初始化请求头。
  1. 签名生成:
  • signature函数使用MD5算法生成请求的签名,签名用于后续的网络请求验证。
  1. 用户交互函数:
  • get_vcode用于获取短信验证码。

  • login用于用户登录,使用手机号和验证码。

  • get_current_session_idget_day_time用于获取当前的会话ID和准确的时间戳。

  1. 地理位置和商店处理:
  • get_location_count查询特定省市下的商店库存。

  • distance_shopmax_shop用于基于不同标准(如距离和库存最大化)选择商店。

  • select_geo用于地理编码,将地址转换成地理坐标。

  1. 加密和动作参数构建:
  • 使用Encrypt类(从encrypt模块导入)对参数进行AES加密。

  • act_params用于构建活动参数,这些参数包括了用户、商品和店铺的ID等。

  1. 通知和预约功能:
  • send_email函数通过Pushplus服务发送通知。

  • reservation用于提交商品预约请求。

  1. 实用功能:
  • get_map用于获取商店的地理位置数据。

  • getUserEnergyAward用于领取用户能量奖励,这可能是应用内的某种积分或奖励系统。

部分源码-脱敏


def send_email(msg: str):if config.PUSH_TOKEN is None:returntitle = 'imoutai预约失败'  # 改成你要的标题内容content = msg  # 改成你要的正文内容url = 'http://www.pushplus.plus/send'r = requests.get(url, params={'token': config.PUSH_TOKEN,'title': title,'content': content})logging.info(f'通知推送结果:{r.status_code, r.text}')def reservation(params: dict, mobile: str):params.pop('userId')responses = requests.post("https://app.moutai519.com.cn/xhr/front/mall/reservation/add", json=params,headers=headers)if responses.status_code == 401:send_email(f'[{mobile}],登录token失效,需要重新登录')raise RuntimeErrorif '您的实名信息未完善或未通过认证' in responses.text:send_email(f'[{mobile}],{responses.text}')raise RuntimeErrorlogging.info(f'预约 : mobile:{mobile} :  response code : {responses.status_code}, response body : {responses.text}')def select_geo(i: str):# https://www.piliang.tech/geocoding-amapresp = requests.get(f"https://www.piliang.tech/api/amap/geocode?address={i}")geocodes: list = resp.json()['geocodes']return geocodesdef get_map(lat: str = '28.499562', lng: str = '102.182324'):p_c_map = {}url = 'https://static.moutai519.com.cn/mt-backend/xhr/front/mall/resource/get'headers = {'X-Requested-With': 'XMLHttpRequest','User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0_1 like Mac OS X)','Referer': 'https://h5.moutai519.com.cn/gux/game/main?appConfig=2_1_2','Client-User-Agent': 'iOS;16.0.1;Apple;iPhone 14 ProMax','MT-R': 'clips_OlU6TmFRag5rCXwbNAQ/Tz1SKlN8THcecBp/HGhHdw==','Origin': 'https://h5.moutai519.com.cn','MT-APP-Version': mt_version,'MT-Request-ID': f'{int(time.time() * 1000)}{random.randint(1111111, 999999999)}{int(time.time() * 1000)}','Accept-Language': 'zh-CN,zh-Hans;q=1','MT-Device-ID': f'{int(time.time() * 1000)}{random.randint(1111111, 999999999)}{int(time.time() * 1000)}','Accept': 'application/json, text/javascript, */*; q=0.01','mt-lng': f'{lng}','mt-lat': f'{lat}'}res = requests.get(url, headers=headers, )mtshops = res.json().get('data', {}).get('mtshops_pc', {})urls = mtshops.get('url')r = requests.get(urls)for k, v in dict(r.json()).items():provinceName = v.get('provinceName')cityName = v.get('cityName')if not p_c_map.get(provinceName):p_c_map[provinceName] = {}if not p_c_map[provinceName].get(cityName, None):p_c_map[provinceName][cityName] = [k]else:p_c_map[provinceName][cityName].append(k)return p_c_map, dict(r.json())def getUserEnergyAward(mobile: str):""""""cookies = {'MT-Device-ID-Wap': headers['MT-Device-ID'],'MT-Token-Wap': headers['MT-Token'],'YX_SUPPORT_WEBP': '1',}response = requests.post('https://h5.moutai519.com.cn/game/isolationPage/getUserEnergyAward', cookies=cookies,headers=headers, json={})# response.json().get('message') if '无法领取奖励' in response.text else "领取奖励成功"logging.info(f' : mobile:{mobile} :  response code : {response.status_code}, response body : {response.text}')

这篇关于某东抢购某台脚本——高成功率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/985933

相关文章

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

通过Python脚本批量复制并规范命名视频文件

《通过Python脚本批量复制并规范命名视频文件》本文介绍了如何通过Python脚本批量复制并规范命名视频文件,实现自动补齐数字编号、保留原始文件、智能识别有效文件等功能,听过代码示例介绍的非常详细,... 目录一、问题场景:杂乱的视频文件名二、完整解决方案三、关键技术解析1. 智能路径处理2. 精准文件名

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

Python3脚本实现Excel与TXT的智能转换

《Python3脚本实现Excel与TXT的智能转换》在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式,本文将使用Python3实现Excel与TXT的智能转换,需要的可以... 目录场景应用:为什么需要这种转换技术解析:代码实现详解核心代码展示改进点说明实战演练:从Excel到

Python脚本实现图片文件批量命名

《Python脚本实现图片文件批量命名》这篇文章主要为大家详细介绍了一个用python第三方库pillow写的批量处理图片命名的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言源码批量处理图片尺寸脚本源码GUI界面源码打包成.exe可执行文件前言本文介绍一个用python第三方库pi