一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富?

本文主要是介绍一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富?

 

 

本文介绍如何利用Python+uiautomator2 每日自动赚取支付宝积分。

支付宝的积分有啥用?诱惑诱惑你:

  • 可以兑换视频网站的VIP会员。
  • 可以兑换各种优惠券。
  • 可以在年底活动中兑换苹果手机。
  • 其他,一言难尽... 比如,我喜欢买知识课堂的课程。(知识付费时代,我用积分买知识)

 

 

一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富?

 

 

一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富?

 

好了,有了动机,我们就来开始动手吧。

赢取积分的思路: 在支付宝里,有个猜股市涨跌的功能。每日13:00前,用账户的积分下注,如果猜中了涨跌,就能按比例赢到对手的积分。有时押200,赢400.

 

一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富?

 

 

从赌博的概率讲,只要猜对的概率高于50%,就是稳赚不赔的,值得玩一玩。根据下图可以找到支付宝猜涨跌功能。

 

一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富?

 

 

 

怎么玩?

不懂股票,别慌。先说思路:股市开盘时间段每天上午9:30-11:30,下午13:00-15:00。所以,一般来说,每天中午吃饭的时候,你只需要打开股票软件,看一下11:30收盘的涨跌趋势,就可以大致猜出当天的趋势。 注意:你必须在下午13:00之前下注,过了13:00就是预测第二天的涨跌了。

如果当天11:30收盘涨跌不明显,你就赌很少积分,如果趋势明显,你就用200积分。就这么简单。

 

 

具体策略是:

1)根据当日涨跌方向,判断涨跌方向。如当日涨>=0%, 则赌涨, 反之赌跌。

2)根据当日涨跌幅度,选择赌积分的数量。

涨跌绝对值 >=0.4%, 200积分;

涨跌绝对值 在0.4~0.3之间,100积分;

涨跌绝对值 在0.3~0.2之间,50积分;

涨跌绝对值 <0.2, 20积分;

截止目前,手动应用策略的战况如何呢?支付宝统计胜率83%,相当的高。(19.2月份,支付宝活动还可以选择现金,不要积分)。如图:

一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富?

 

 

但是遗憾的是,很多时候午饭吃High了,就忘记下注了。

 

 

怎么办?怎么办?

作为技(ai)术(zhe)控(teng)的人, 我决定写个Python程序,找个旧安卓机,让赚积分自动跑起来。当然这一切主要依靠Python强大的第三方库uiautomator2功能,所以前期准备环境少不了。

  1. 安装Python环境(建议3.6或3.7以上版本) + Pycharm编辑器(最新的免费社区版即可). 具体方法,可以百度,此处跳过细节。
  2. 确保电脑中有adb命令文件夹,并加入到环境变量中。adb具体可以在安卓开发工具的platform-tools下找到
  3. 为Python 安装手机自动化UI工具 Uiautomator 2, 在dos下,使用pip 命令:
  4. pip install --upgrade --pre uiautomator2
  5. 安装 Weditor (控件属性识别工具),完美搭配Uiautormator2.
  6. pip install --pre -U weditor
  7. 找一台旧手机,打开开发者模式,并连接家里wifi,(不需要插入SIM卡),安装支付宝并登录账号至少一次。
  8. 保持手机USB 连接电脑,执行下面的命令,自动安装UIautomator2所需要的设备端程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch
  9. python -m uiautomator2 init
  10. 在dos命令下,为Python安装第三方库Tushare,以便轻松查询上证指数涨跌。Tushare是一个免费、开源的python财经数据接口包,功能十分强大。这里我们只用一点点指数查询功能。
  11. pip install tushare
  12. 在dos命令下,启动Weditor,定位支付宝猜涨跌各个UI的元素:
  13. python3 -m weditor

 

以上8个步骤都做了,理论上,我们就可以开始写程序了。如果对于获取控件元素,不了解,请本文的底部参考链接。

开始写Python 程序:

#导入必备的Python库
import uiautomator2 as u2
import time
import tushare as ts
import schedule
from datetime import datetime 
# 连接设备,下面连接用的序列号可由adb devices,手动查出来
d = u2.connect_usb("FUH0216830003040") # 华为 P9
# 唤醒设备d.screen_on() # turn on the screen
time.sleep(2)
# unlock screen,不能设置复杂图形或者密码哦
d.unlock( u")
time.sleep(2)# return to home
d.press("home")
# 等待
time.sleep(2)
# 启动支付宝应用,并进入猜涨跌界面,支付宝package name, 百度可查
d.app_start("com.eg.android.AlipayGphone")
# wait until the ui object appears,以下元素名,均由Weditor获得
if d(text=u"好的").wait(timeout=3.0): # return bool:d(resourceId="com.alipay.mobile.antui:id/ensure").click()
if d(text=u"点击下方头像登录").wait(timeout=3.0): # return boold(resourceId="com.ali.user.mobile.security.ui:id/userAccountImage").click()
if d(text=u"刷脸登录").wait(timeout=3.0): # return boold(resourceId="com.ali.user.mobile.security.ui:id/switchLoginMethodCenter").click()
if d(text=u"密码登录").wait(timeout=3.0): # return boold(resourceId="com.alipay.mobile.antui:id/item_name", text=u"密码登录").click()d(resourceId="com.ali.user.mobile.security.ui:id/content", className="android.widget.EditText",instance=1).set_text("写支付宝密码")time.sleep(2)d(resourceId="com.ali.user.mobile.security.ui:id/loginButton").click()
if d(text=u"更多").wait(timeout=3.0):d(text=u"更多").click()
if d(text=u"股票").wait(timeout=3.0):d(text=u"股票").click()
if d(text=u"涨跌").wait(timeout=3.0):d(text=u"涨跌").click()
# 利用Tushare库,从dataframe数据中,拿上证指数000001的涨跌情况
df = ts.get_index()
for i in range(26):if df.loc[i][''000001''] == index_code:up_or_down = df.loc[i]['change']
# 根据上午涨跌幅,选择涨跌方向,并选择用多少积分下注(20, 50, 100, 200)
if up_or_down >= 0: # 根据支付宝规则,大盘不涨不跌,视为上涨# 点击涨按钮d.click(0.281, 0.784)# 等待下个UI出现time.sleep(3)# 下面根据涨的幅度情况下赌注if up_or_down > 0.4: # 如果当日涨幅超过4%,赌200积分;my_print("当日涨幅超过0.4%,赌200积分")d.click(0.741, 0.416)elif 0.3 < up_or_down <= 0.4: # 如果当日涨幅在0.4 和0.5之间,赌100积分;my_print("当日涨幅在0.3 和0.4之间,赌100积分")d.click(0.58, 0.416)elif 0.2 < up_or_down <= 0.3: # 如果当日涨幅在0.3 和0.4之间,赌50积分;my_print("当日涨幅在0.3 和0.2之间,赌50积分")d.click(0.415, 0.416)elif up_or_down <= 0.2: # 如果当日涨幅在0.3以下, 赌20积分my_print("当日涨幅在0.2以下, 赌20积分")d.click(0.25, 0.416)
else: # up_or_down <= 0, 估计这个位置是跌# 点击跌按钮d.click(0.727, 0.784)# 等待time.sleep(3)# 下面根据跌的幅度情况下赌注if up_or_down < -0.4: # 如果当日跌幅超过5%,赌200积分;# 点击200积分赌注my_print("当日跌幅超过0.4%,赌200积分")d.click(0.741, 0.416)elif -0.4 <= up_or_down < -0.3: # 如果当日跌幅在0.4 和0.5之间,赌100积分;my_print("当日跌幅在0.4 和0.3之间,赌100积分")d.click(0.58, 0.416)elif -0.3= < up_or_down < -0.2: # 如果当日跌幅在0.3 和0.4之间,赌50积分;my_print("当日跌幅在0.3 和0.2之间,赌50积分")d.click(0.415, 0.416)elif up_or_down <= -0.2: # 如果当日跌幅在0.3以下, 赌20积分my_print("当日跌幅在0.2以下, 赌20积分")d.click(0.25, 0.416)# 点击确定按钮,下注成功
time.sleep(3)
d.click(0.477, 0.759)

 

以上代码(除了import段落) 封装起来取函数名 guess_up_down。

胜利在望,再加一个函数负责每日15:31 检查 当日输赢情况,并选择要积分还是要现金。函数名 index_final_check().

部分代码如下:

 

my_print("上午收盘上证涨跌幅%.2f%%" % morning_change)
my_print("下午收盘上证涨跌幅%.2f%%" % final_change)
if morning_change >= 0 and final_change >= 0:my_print("赌涨成功!(根据支付宝规则,大盘不涨不跌,视为上涨)")
elif morning_change < 0 and final_change < 0:my_print("赌涨成功:最终如期下跌")
elif final_change < 0 <= morning_change:my_print("赌涨失败:押注上涨,最终下跌!")
elif morning_change < 0 <= final_change:my_print("赌跌失败:押注下跌,最终上涨!")
# 点亮屏幕,并重新登录程序。
connect_device_wake_unlock()
# 先退出程序,因为只有重新进入,才能看到获得积分还是现金。
d.app_stop("com.eg.android.AlipayGphone")
time.sleep(5)
# 重新进入程序
launch_app_enter_guess()
# 点击界面,选择领取积分还是现金。 
# 当然是选择现金
d(description=u"兑换权益").click()

 

下图,当天自动下注20积分,赢取40积分,换成了现金奖励0.2(兑换权益)。

 

一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富?

 

 

 

好了,程序看似功能实现了,但是还不行。我们总不能每天都手动运行程序吧? 那跟中午手动点一下区别不大呢。

所以,我们来定义一个主函数,利用schedule 方法按时调用我们的任务。

本次在主函数调用了一个today_is_holiday函数(具体代码略过,代码的实现方式为:周一到周五而且非法定节假日则为交易日,否则视为holiday),该函数检查当前是否为交易日,如果是,则休息24小时,下一日继续检查。否则(是交易日)则定时调用 guess_up_down 和 index_final_check函数,完成任务。

def main():my_print("***程序跑起来无眠无休,每个交易日为您赌积分***")schedule.every().day.at("11:31").do(guess_up_down)schedule.every().day.at("15:15").do(index_final_check)while True:if today_is_holiday():time.sleep(24 * 60 * 60) # sleep 24个小时else:# 每10秒检测一次schedule.run_pending()time.sleep(10)
if __name__ == '__main__':main()

 

好了自动运行效果如视频(本文写在周末,所以没有真的下注,只看看效果):

程序运行起来,可以全年无休,自动在每个交易日下注,自动选择拿积分还是拿现金。

需要注意的是,下午检查积分到账的时间,不能早于15:15,因为支付宝最早于15:15公布结果。

如果想让程序更酷一点,可以微信发送结果给自己(参见:简单实用的微信消息推送神器:server酱),也可以写日志文件,记录每日盈亏情况。

Enjoy~~啦啦啦~~~

 

提醒:

1)由于支付宝的下注UI的控件元素无法被获取,所以采用了坐标值方法来点击绝对位置。如果换做其他手机型号,就必须自己重新获取位置,并修改对应代码。建议破旧二手安卓机(>=4.4 OS),来做这件事就好了。

2)uiautomator2 系统要求:

  • Python 要求 Android >= 4.4 Python >=2.7 || <= 3.7

3)我们测试机可以根据场景自动再次登录支付宝,以防止你用其他手机做过登录。要实现这点,需要你在代码 set_text("写支付宝密码") 处,替换为你支付宝密码。

这篇关于一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交