- 发现身边有个小姐姐,每天坚持刷微信读书,原因有二,一是和其它小伙伴相互监督,不想落后; 二是本身喜欢读书,有靠写作吃饭的计划~
- 微信读书有一个鼓励机制,一周阅读5小时可兑换10书币,每周日晚清空一周的总读书时长,没兑换的时长不计入下一周(1书币 == 1块钱)
- 作为一个经常加班的程序猿,一周刷5个小时,有点困难,所以只好请一些自动化测试工具来帮忙(刷时长真是一个古老而有效的技能),花了一天的时间,终于完成了~
最终效果
第一步: 安装网易mumu,通过应用中心安装微信读书
- 网页mumu下载地址: http://mumu.163.com/
- 在网易mumu模拟器内安装微信读书
第二步:下载安装python环境
下载地址: https://www.python.org/downloads/
- 通过python自带的pip安装依赖包 uiautomator
pip install uiautomator
第三步: 获取adb,将adb连接到mumu所在的 127.0.0.1:7555
- 测试: 启动mumu,右键cmd.exe,以管理员身份启动,在终端内输入 adb connect 127.0.0.1:7555,adb即可成功连接到mumu(注意: 这里一定要先启动mumu,再输入 adb connect 127.0.0.1:7555,否则adb无法连接成功)
第四步: 启动脚本,刷时长
- 为了方便,我把脚本 wx_read_auto.py 放到了adb的目录下
- 打开mumu内的微信读书的某一页,启动脚本
源码: 刷时长脚本 wx_read_auto.py
from uiautomator import device as d import time import datetime import random #点亮屏幕 def lightScreen(): d.screen.on() # 自动翻页,翻页后休息5-10秒钟 def autoSwipe(): # 假装看书45-55秒钟(假装是人类在看书。。。) read_time = random.randint(45,50) time.sleep(read_time) print("阅读花费:",read_time,"秒") # 从(1000,500)到(30,500) d.swipe(1000,500,30,500) #这里需要根据你的模拟器的具体坐标测试 # 休息一段时间(休息的时间=60秒-看书的秒数) time.sleep(60-read_time) print("休息",60-read_time,"秒,放松下眼睛~") # 执行5小时(300分钟) if __name__ == '__main__': all_time = 300 user_input_time = input("请输入需要阅读的分钟数(请输入正整数):") try: user_input_time = int(user_input_time) if (user_input_time > 0): print("程序将会执行",user_input_time,"分钟") all_time = user_input_time except: print("您输入的值不合法, 将使用默认参数300, 程序将会自动执行5小时") pass for i in range(all_time): lightScreen() print("自动点亮屏幕,开始阅读。。。") autoSwipe() print("==>已经阅读",i+1,"分钟","还差",all_time-i-1,"分钟完成阅读")
小结: