老司机用python脚本刷微信读书的时长

  • 微信读书有一个鼓励机制, 一周阅读5小时可兑换10书币,每周日晚清空一周的总读书时长,没兑换的时长不计入下一周(1书币 == 1块钱)
  • 作为一个经常加班的程序猿, 一周刷5个小时, 有点困难, 所以只好请一些自动化测试工具来帮忙(刷时长真是一个古老而有效的技能), 花了一天的时间,终于完成了~

当然入门Python没有好的学习资料怎么行呢?所以小编这里准备了一份Python学习资料,添加小编学习交流群943752371即可

最终效果

 

 

第一步: 安装网易mumu, 通过应用中心安装微信读书

  • 在网易mumu模拟器内安装微信读书

第二步:下载安装python环境

下载地址: https://www.python.org/downloads/

  • 通过python自带的pip安装依赖包uiautomator
pip install uiautomator

第三步: 获取adb, 将adb连接到mumu所在的127.0.0.1:7555

  • adb相当于mumu的驱动, 我找到了一个无需安装的版本, 解压即用,adb压缩包里的文件如下图(文末提供了下载的链接)

     

  • 测试: 启动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,"分钟完成阅读")



作者:木子昭
链接:https://www.jianshu.com/p/fffaf97ccf11
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/weixin_42209553/article/details/84967948