Python 带你抢视频红包,不放过一个红包!

用python编程抢红包程序,python自动抢红包脚本 模拟抢红包的小功能#1.红包的总金额total,发放红包的数量num#2.每个红包的最低金额为1元,且每个红包均为整数金额#每个红包的金额【总金额-已抢红包*1】 阅读详情

今天给大家分享一个如何利用 Python 技术薅视频的红包!不仅让你学习到 Python 技术,还可以赚到钱。手把手教学,还附带源码!看完的同学,我觉得可以来一波在看+转发!

1

目 标 场 景

Python资源共享群:626017123

如今短视频横行的时代,以某短视频为首的,背后依靠着强大的资金后盾,疯狂地对平台用户进行红包轰炸。

 

 

 

 

 

与传统的红包不一样,视频红包包含位置的不确定性、大小不确定性、元素 ID 的不确定性等......这些不确定性都会导致抢红包的操作变得异常的复杂。

本篇文章的目的是利用 Python 自动化实现「抢视频红包」这一骚操作。

ps:本文仅用作学习交流,请勿用于其他用途。

2

准 备 工 作

在开始编写脚本之前,需要做如下准备

1、一部 Android 手机,并在 PC 端配置好 ADB 运行环境

2、Python 虚拟环境下安装自动化依赖库、图片对比依赖库

3、PS 或者其他图片编辑软件

# 自动化依赖
pip3 install pocoui
# 图片对比依赖
pip3 install aircv

 

3

编 写 代 码

第一步,我们需要借助 Airtest 驱动手机打开目标短视频 App。

# 目标应用的包名和LaunchActivity
self.package_name = 'com.**.weishi'
self.home_activity = 'com.**.oscar.module.splash.SplashActivity'
# 回到主界面
home()
# stop_app(self.package_name)
# 打开应用
start_my_app(self.package_name, self.home_activity)

 

第一次打开应用的时候,会弹出一个警告对话框。

 

 

 

 

 

这里利用「异步线程」去处理。

循环检测对话框元素是否存在,一旦出现,就模拟点击操作,关闭这个对话框。

def __handle_dialog(self):
    """
    处理警告对话框
    :return:
    """
    count = 0
    while count < self.wait_for_dialog_timeout:
         tip_notice = self.poco('com.tencent.weishi:id/title_text', text=u'青少年保护功能提示')
         try:
            if tip_notice.exists():
                # 关闭
                print('出现警告对话框,关闭之。')
                self.poco('com.tencent.weishi:id/close_btn').click()
                break
            else:
                pass
         except Exception as e:
            print('产生异常了')
         time.sleep(1)
         count += 1
# 异步处理
threading.Thread(target=self.__handle_dialog, name='thread1').start()

 

第二步,「判断」当前播放的视频是否是一个包含红包的视频。

通过对大量视频的观察,可以看出视频内包含两类红包,分别是普通视频红包、问答视频红包。

 

 

 

 

 

通过 Android SDK 自动的工具 Monitor 查看界面元素。

可惜的是,这个互动红包元素标识「元素 ID 不存在」,并且 Text 属性也为空,没法利用传统的方式来获取到。

 

 

 

 

 

 

我换一种方式来实现,利用「图片对比」技术来判断互动红包元素是否存在,进而判断视频是否是一个包含红包的视频。

利用「PS」把互动红包元素图片从屏幕截图中裁剪出来。

需要注意的是,由于这个元素形状不规则,这里只能裁剪一个规则的矩形区域,不能截取其他多余的区域,否则会导致图片比对会失败。

 

 

 

 

 

接着利用 adb 命令截取手机屏幕的图片,然后保存到本地。

def save_screenshot_to_pc(desc):
    """
    获取屏幕截图
    desc 截图保存路径
    :return:
    """
    exec_cmd('adb shell /system/bin/screencap -p /sdcard/screenshot.png')
    exec_cmd('adb pull /sdcard/screenshot.png %s' % desc)

 

然后就可以利用「aircv」库,利用上面裁剪的图和屏幕截图进行比对,判断裁剪的互动红包元素是否能匹配到。

 

当匹配指数为 0.8 以上的时候,就认为当前视频内一定包含红包。

def find_image(source_path, part_path):
    """
    匹配模板
    :param source_path: 原图片
    :param part_path: 待匹配的图片
    :return:
    """
    # 原始图像
    source = ac.imread(source_path)
    # 待查找的部分
    part = ac.imread(part_path)
    result_raw = ac.find_template(source, part)
    # 匹配图片中心点坐标
    if result_raw and result_raw.get('confidence') >= 0.8:
        center_position = result_raw.get('result')
        print(result_raw)
    else:
        center_position = None
    return center_position

 

第三步,如果判断当前视频内包含互动红包元素,就可以执行「抢红包」的操作了。

首先,利用 Monitor 截取红包出现那一刻的界面元素树,依然可以看到红包图片元素不存在 ID 和 Text 属性。

 

 

 

 

 

然后我首先想到是否可以利用上面的方式,通过局部图片匹配去拿到红包图片的中心点坐标。

 

 

 

 

 

可是通过大量的测试发现,视频中红包图片元素的大小「存在不确定性」,用 PS 截取的图片不能适用于所有视频。

 

 

 

 

 

最后,只能通过分析元素的层次结构,拿到存在元素 ID 的最近一级父类元素,然后再去得到红包元素,进而得到「bound」属性值。

vp = self.poco('com.tencent.weishi:id/hippy_container')
if vp.exists():
     # 元素
     try:
           red_package_element = vp.children()[0].children()[0].children()[0].children()[0]
     except Exception:
           print('产生一个异常')
           continue
     # 获取bound()属性
     element_size = red_package_element.get_bounds()

 

拿到红包图片元素的 bound 属性之后,就可以计算出红包图片元素的中心点坐标。

 

 

 

 

 

def get_element_center_position(poco, bound):
    """
    获取元素的中心点坐标
    :return:
    """
    # 获取手机屏幕的宽、高
    screen_width = poco.get_screen_size()[0]
    screen_height = poco.get_screen_size()[1]
    # 元素的中心点坐标
    center_position = (bound[1] + bound[-1]) / 2 * screen_width, (
            bound[0] + bound[2]) / 2 * screen_height
    return center_position

 

我们都知道一段视频中,红包出现的时间存在不确定性。

通过对红包图片出现前和出现后的元素树进行对比,可以发现,当红包出现的时候,红包图片元素「存在多个子元素」。

因此可以循环获取 UI 元素树,直到红包元素存在子元素的时候,就退出循环。

# 一直等待红包元素出现,才执行点击操作
if len(red_package_element.children()) > 0:
     print(center_position)
     break
else:
     # print('等待红包出现可以点击')
     pass

 

通过点击红包元素的「中心点坐标」,就可以完成抢视频红包的最后操作。

 # 获取到红包坐标之后,执行点击点击操作,直到抢到红包为止
exec_cmd('adb shell input tap %d %d' % (center_position[0], center_position[1]))

 

 

4

结 果 结 论

通过上面的操作,完成了抢普通视频红包的操作,循环操作就可以拿到应用内的所有的普通视频红包。

 

针对问答视频红包,利用 Monitor 可以直接拿到题目和答案的文本内容,这需要针对题目内容和答案进行一次匹配。

强大!用 60 行代码自动抢微信红包 春节来到,红包们大概率在微信各大群中肆虐,大家是否都一样不抢到红包们心里就感觉错过了一个亿,可总会被这事那事耽误而遗憾错过,下面用 Python 写一个自动抢红包代码 启动入口 from appium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from appium.webdriver.common.touch_act 阅读详情

相关推荐

Python之歌词解析,按照时间输出

Python解析歌词,将歌词按时间输出,适用于ktv,播放器的字幕制作

薅羊毛 | Python 带你抢视频红包,不放过一个红包!

今天给大家分享一个如何利用 Python 技术薅视频的红包!不仅让你学习到 Python 技术,还可以赚到钱。手把手教学,还附带源码!看完的同学,我觉得可以来一波在看+转...

qq_33570092的博客 1631

Python-NoScope极速视频目标检测

NoScope:极速视频目标检测

python刷红包_程序员小伙使用Python刷短视频自动领红包,好嗨哟

最近有几款比较火的刷短视频就可以领红包的App,只要简单的上下翻页浏览视频App就会自动计时累计红包,小编也快乐地参与到其中,由于浏览时间过长眼睛常常感觉到疲惫,手指也有点酸痛,根据多年的程序员思维,简单重复的工作必定有可以代替的方案,下面就跟着我的思维学习如何用Python实现自动刷视频领红包功能首先这里只实现对Android手机的翻页刷视频功能,手机也不需要Root,保证了手机数据的安全性。我...

weixin_39540704的博客 666

OpenCV-Python视频解帧代码

利用OpenCV的python接口,实现将一个视频中的所有帧解离成一张张图像的目的,可供新手学习OpenCV的Python调用。

人大金仓集群部署(主备)

4.2 上传安装包镜像和授权文件到install目录下并授权。1、复制系统脚本到/opt/kingbase目录下(主节点)4.2 修改cluster_install.sh。回车进行下一步,直到出现以下界面,回复Y键回车。三、安装kingbase客户端段(都要安装)install目录作为安装包具体存放目录。4.1 修改install.conf文件。2、复制授权文件到安装目录下(主节点)3、修改ssh参数(节点都要配置)5、安装kingbase客户端。二、基本环境配置(都要配置)6、数据库集群安装(主节点)

edutech_wang的博客 1996

python模拟微信红包

get = round(random.uniform(0.01,k),2) # 取0.01到我们定义的最大金额中间的值 round:取小数点后2位。pop.append(round(money,2)) # 因为我们的循环获取的值会少一个,而这步骤会将剩下的金额添加到列表中。print(f"手气最好的是第{pop.index(max(pop))+1}人,金额为{max(pop)}元")money = int(input("输入红包金额:"))ren = int(input("输入红包数量:"))

2301_76480989的博客 3260

别再乱改宏定义了!STM32F103程序移植保姆级教程(从C8T6到ZET6实战)

本文详细解析了STM32F103程序从C8T6移植到ZET6的实战步骤,重点介绍了硬件差异、开发环境配置、时钟陷阱及外设处理等关键点。通过修改宏定义(如STM32F10X_HD)、调整启动文件和时钟配置,确保移植顺利进行。适合嵌入式开发者参考,避免常见移植问题。

weixin_42567497的博客 215

python图片裁剪对比_薅羊毛 | Python 带你抢视频红包,不放过一个红包!

来源:AirPython1目 标 场 景如今短视频横行的时代,以某短视频为首的,背后依靠着强大的资金后盾,疯狂地对平台用户进行红包轰炸。与传统的红包不一样,视频红包包含位置的不确定性、大小不确定性、元素 ID 的不确定性等......这些不确定性都会导致抢红包的操作变得异常的复杂。本篇文章的目的是利用 Python 自动化实现「抢视频红包」这一骚操作。ps:本文仅用作学习交流,请勿用于其...

weixin_29268331的博客 129

STM32多模式智能小车状态机设计与中断优先级实践

在嵌入式实时系统中,状态机是实现多任务协同与功能切换的核心范式。其本质是通过有限状态集合、明确转移条件和确定性动作,构建可预测、易维护的控制逻辑。基于STM32等资源受限MCU时,需兼顾状态调度效率、中断并发安全与硬件资源约束。关键技术价值体现在:提升系统模块解耦度、支持物理按键与蓝牙双源触发、保障实时响应不丢帧。典型应用场景包括智能小车多模运行(循迹、避障、遥控、定距跟随等)、工业设备工作模式切换及IoT终端低功耗状态管理。本文以STM32F103C8T6平台为例,深入解析全局模式变量设计、双通道状态切换

weixin_42509888的博客 93

手把手教你用OpenCV+Python实现HALCON级模板匹配(附工业案例代码)

本文详细介绍了如何利用开源计算机视觉库OpenCV和Python,构建媲美HALCON商业软件的工业级模板匹配解决方案。通过分析工业检测的核心挑战,文章提供了从模板预处理、多策略融合匹配到应对尺度与旋转的完整代码实现,并附有连接器引脚检测的实战案例,为工业自动化场景下的高精度视觉检测提供了低成本、高可控性的技术路径。

e3f4g5的博客 284

python抢红包脚本_Python自动抢视频红包,仅供学习!

本文来源于公众号:AirPython 1目 标 场 景如今短视频横行的时代,以某短视频为首的,背后依靠着强大的资金后盾,疯狂地对平台用户进行红包轰炸。与传统的红包不一样,视频红包包含位置的不确定性、大小不确定性、元素 ID 的不确定性等......这些不确定性都会导致抢红包的操作变得异常的复杂。本篇文章的目的是利用 Python 自动化实现「抢视频红包」这一骚操作。之前有分享过群里抢红包的,链接:...

weixin_39590989的博客 1337

【多元统计分析】均值向量和协方差阵的检验——spss上机实验

均值向量和协方差阵的检验——spss上机实验 #参考书目为《多元统计分析》(第五版)——何晓群.中国人民大学出版社 #如有错误,请指正!谢谢~ #关注公众号搜索同名文章获取数据~ 习题2.3 现选取内蒙古、广西、贵州、云南、西藏、宁夏、新疆、甘肃和青海等9个内陆边远省区。选取人均GDP、第三产业比重、人均消费支出、人口自然增长率及文盲半文盲人口占15岁以上人口的比例等5项能较好的说明各地区社会经济发展水平的指标,验证边远及少数民族聚居区的社会经济发展水平与全国平均水平间有无显著差异。 将输入导入spss

suansuannainaizi的博客 3万+

python图片裁剪对比_Python 带你抢视频红包,不放过一个红包

如今短视频横行的时代,以某短视频为首的,背后依靠着强大的资金后盾,疯狂地对平台用户进行红包轰炸。准 备 工 作在开始编写脚本之前,需要做如下准备1、一部 Android 手机,并在 PC 端配置好 ADB 运行环境2、Python 虚拟环境下安装自动化依赖库、图片对比依赖库3、PS 或者其他图片编辑软件# 自动化依赖pip3 install pocoui# 图片对比依赖pip3 install a...

weixin_39578197的博客 218

构建自己的哨兵数据集(以sentinel-1为例,使用SNAP软件)

通过欧洲航天官网获取哨兵数据的产品,通过SNAP软件进一步得到SAR图像(以导出图片为例)

xiaoxTai的博客 6183

ISOLAR Autosar BSW 配置 之 Com

Autosar ISOLAR Bsw Configuration 之 Com

qq_42262743的博客 453

用Python实现微信自动化抢红包,再也不用担心抢不到红包了

刚刚收到了两个消息,一个好消息,一个坏消息。先说好消息,好消息就是微信群里有人要发红包,开心~不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 …过了一会,内心的情绪逐渐平复了。心想:“难道就这么放弃了吗?晚饭还吃泡面(泡面感觉有被冒犯到)?但是手动抢肯定没戏,毕竟手can谁也没办法!那就只能试试能不能通过编程的方式实现自动化抢红包了!

weixin_58753619的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Python 抢视频红包神器! 过节不错过任何一个红包,

点击上方“开发者技术前线”,选择“星标”13:50在看真爱阅读文本大概需要 15 分钟。1目 标 场 景如今短视频横行的时代,以某短视频为首的,背后依靠着强大的资金后...

开发者技术前线-DevolperFront 256

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: Python爬虫经典案例详解:爬取豆瓣电影top250写入Excel表格!
下一篇: 零基础必看教程!Scrapy高级用法!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值