2018年刚到就作死撸羊毛(支付宝)。2017年用分享给支付宝好友链接的官方通道“撸”了400大洋。
如许天天早上7:30便起床开愉快心的分享红包链接。200多个老友分享完一次就要200/9次的频频的举措,可是时辰长了多些无味的感觉,往复性的举措是不符合Python理念的,“不要重复你本身”。
内容引见
若何让我的手脱离手机去发送分享支付宝的链接?Pytho编程。在最后的时辰想着支付宝有没有像微信一样的程序接口,去批量的给支付宝中的老友去发送红包的链接,查找质料后,创造支付宝只供给商业的接口,再下面一点的接口不供给了。大概是担忧安然和骚扰问题!
在年尾火的微信跳一跳中,轨范辅助中用到了ADB,ADB是Android把持体系与桌面电脑间沟通的一个呼吁列工具。可以在电脑上经由过程呼吁到达把持手机的了局。这个工具可以说在测试中的品级规模属于低级的一种。能到达的了局:我在手机上的各类把持(点,滑动,写文字,截屏)都可以经由过程ADB使用呼吁的编制实现。本篇文章中将糊口中的事务笼统模子化,完成简单的数理建模,使用ADB的“滑动”与“按压”的组和完成“主动化”分享付出宝红包链接。
分为这几个python程序
搞这个工具的缘故缘由,受什么启发
电脑端
手机端保留图片
预备工具:
-
电脑
-
安卓手机
-
数据线
-
Python
施行方案
-
位置测距
-
笼统模子
-
Python代码
位置测距
把持手机使用adb,原理与使用参考详细引见。在泛泛使用手机过程中,最常用的举措就是点点点,滑滑滑。模仿分享红包链接的过程中也使用到了两步
一个是上下摆布滑动
adb shell input swipe x1 x2 y1 y2
另一个是点击
adb shell input tap x y
X、Y是手机的分辩率像素对应的位置。手机上左上位置坐标为(0,0),相应的右下的坐标(Xmax,Ymax)。每一个位置都可以经由过程坐标的编制表达,例如滑动屏幕是从一个坐标到另一个坐标,点击屏幕是直接tap坐标,获取分辩率的编制
adb shell wm size
例如:我的手机720*1280,宽720,长1280
点击某个位置
abd shell input tap 100 100
这时辰点击位置,可是这个(100,100)若何马上肯定呢!
创造出专用的“尺子”
按照手机的标准打造一个怀抱,便当后期停止丈量概略的位置。
ADB中input的常用办法
D:\>adb shell input usage: input ... input textinput keyeventinput [touchscreen|touchpad|touchnavigation] tapinput [touchscreen|touchpad|touchnavigation] swipe[duration(ms)] input trackball press input trackball roll
笼统模子
其实发送的过程就两个大的过程。
-
点击发送按钮
-
多选联络人
点击发送按钮
实现点击发送按钮的过程非常的简单。例如下图中必要点击“发送”,就只必要定位到发送按钮的位置区域,在这个区域内点击任何一个点即可完成发送的举措。
python代码
定位到发送按钮的位置的一点(600 650)
import os os.system('adb shell input tap 600 650') # 完成发送
点击按钮是属于傻瓜式的,在与去切确的丈量其位置信息,找到对应的位置的信息即可完成,同样比如发送、确定、取消等呈如今手机上的可点可选内容都能。
多选联络人
为了做到快速的发送链接给老友,使用多选联络人发送编制,选择每次点击联络人便能参加到多选框,支付宝的限定每次的多选在0~9人的规模,最多不能跨越9人。
服从字母名目将整个联络人分成26组。例如定位到A组后,A组中有9位联络人,确定第一位联络人的点击位置,然后第二位联络人在第一位联络人的根本上加上一个联络人的长度(测试长度为111)。
实现9个联络人。
如今整个实现过程的主干已经清楚了,再优化逻辑。
首先若是以某一个字母开首的联络人未满足9人或者跨越9人,我们的代码不再合用,选择可以更改的易维护的方案。将某个以字母开首的所有联络人记实,然后断定是否跨越9人,若是跨越9人,就选着9小我,然后总人数减去9;若是人数达不到9人,便将人数参加到上面代码中的range()位置。
在算法中跨越9次每次履历一个全选的过程都减去一次9,例如A中的人数有19个,每9次一个轮回,必要停止3次轮回分袂是第1次选择9人,第2次选择9人,第3次选择1人。如许来往前往的减去i*9个数字略显智障。
在实际的应用中创造,选择7~9小我后末了发送的过程中,有两行联络人头像的位置,而6小我以下(网罗6人)只需一小我的头像位置,如许发送的位置就不能固定,于是将分组改成6人,进而按捺了往返断定位置的情形。
可以走一遍发送的整个过程,每次发送完成后会前往到支付宝红包的首页,每次都是从首页起头停止
选择依字母开首的联络人,定位到字母联络人的位置
然后去选择联络人。跨越6小我就去选满6人,然后等下次在定位到这个字母联络人的时辰,就要把6小我去舍弃掉,可以转化为不再选这6小我,也就是向下滑动6个联络人的单位。
在发送红包的时辰可以写一段留言
Python代码
完好代码,不才手拙。
里面添加了多处的time,首要仍是本身的手机反响慢的缘故缘由。不得已而为之。
添加联络人
在经由屡次测试,python代码可以无误的在我的手机上跑起来,如许分分钟把所有的人跑完了,如许0就感受联络人太少了额!没几回就发送完了。别的支付宝可以便捷的通过通讯录增加联系人。
批量添加联络人
安卓的手机通信录可以导出.vcf名目。然后传送到电脑上,检察文档的内容
其中的TEL CELL是电话号码,然后批量添加手机号,生成txt中的内容。导入得手机里面更新通信录,大功乐成。
手机号码为了进步可使用率,可以从大学的贴吧中爬取,面向门生获取的手机号,日常的支付宝使用率高。
或者去批量的消费几千个
其实搞笑的工作,在导入完成后,足足有4000多个电话号码。刚上岸上支付宝的小号预备加人,支付宝立即把我的帐号封了,说我存在风险,然后打客服电话,直接给我封了一个月。可见付出宝的安然方法真的强,那儿那里都不能钻空子,钻到一点空子实属捡到的廉价。
既然你支付宝不让我经由过程通信录添加老友,那我就手动的添加
这几串python代码能保证无论是否添加过老友,仍是没有搜索到老友,仍是容许添加都能应对。
天天最多添加的只需30个老友,多了之后就不让添加了。
总结
在此次的文章中没有什么难的手艺上面的问题,主若是应用方面,若何将一系列的问题模子化,轨范化。
若何做到主动呢!将电脑的主板改整天天早上6点主动开启,然后按时实行剧本。(让360手机助手不自启动,防止端口占用),如今我的笔记本游戏本,也不支撑自启,睡房断电更不能抗住一夜,回去用家里的台式机停止考试考试。(我记得我的电脑能经由过程调治主板把频率和功耗降到最低。不外也不值得我去倒持它了。)
理论化分析:勾当停止3个月,付出宝老友最多有500人的上限,天天能添加30人,就算一天只需10小我去同意,如今我的通信录有280多人,在将来一个月内能加满人,同时还有一局部人受不了我的骚扰片面删除我,同时也能保证500人的状态。天天发送500分分享,概略必要一个小时的时辰,按照10%的人去乐意点开链接,天天就有500*10%=50个红包,在红包使用后折算欠妥即使用的人,支付宝领取红包金额最多在0.11元与0.34元最多。可是使用红包后我能获得的奖励金却是翻了几倍的金额。天天收入十几元以上。按照如许想想。
现实这些都是python理论化的分析,可能根柢就到不到这个数值。可是这个可以去试一下。