打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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

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

  • 可以兑换视频网站的VIP会员。

  • 可以兑换各种优惠券。

  • 可以在年底活动中兑换苹果手机。

  • 其他,一言难尽... 比如,我喜欢买知识课堂的课程。(知识付费时代,我用积分买知识)

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

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

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

怎么玩?

不懂股票,别慌。先说思路:股市开盘时间段每天上午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月份,支付宝活动还可以选择现金,不要积分)。如图:

但是遗憾的是,很多时候午饭吃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 u2import timeimport tushare as tsimport schedulefrom datetime import datetime # 连接设备,下面连接用的序列号可由adb devices,手动查出来d = u2.connect_usb('FUH0216830003040') # 华为 P9# 唤醒设备d.screen_on() # turn on the screentime.sleep(2)# unlock screen,不能设置复杂图形或者密码哦d.unlock( u')time.sleep(2)# return to homed.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 bool d(resourceId='com.ali.user.mobile.security.ui:id/userAccountImage').click()if d(text=u'刷脸登录').wait(timeout=3.0): # return bool d(resourceId='com.ali.user.mobile.security.ui:id/switchLoginMethodCenter').click()if d(text=u'密码登录').wait(timeout=3.0): # return bool d(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()
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何用 Python 实现安卓机自动化?
Android自动化之-ATX录放编辑器WEditor的安装使用与异常解决
我用几行 Python 自动化脚本完美解决掉了小姐姐的微信焦虑感
Python 自动化,Appium 凭什么使用 UiAutomator2?
uiautomator2+python自动化测试2-抓元素利器weditor
两分钟搞懂UiAutomator 1 VS 2测试框架
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服