微信读书目前是朋友圈最流行的一款读书app,但是很遗憾微信读书没有自动翻页模式,不过这可难不倒程序员,写个程序让它自动翻页不久好了。
而且微信读书有这样一个激励政策:“每阅读30分钟可兑1赠币,每周最多可兑10赠币。听书超过2小时部分不支持兑换。”我常常每个月读书时间不超过五个小时,甚至不超过1个小时(深刻反省),微信读书有这么好的激励机制,应当利用起来,不光增加了自己的阅读量和知识储备,还有赠币可以赚,何不每周多读书呢?
下面教你如何使用python让微信读书自动翻页,下载安装网易的mumu安卓模拟器,安装后在里面安装微信读书。然后下载adb,解压后在文件夹下运行如下代码,或者将该目录添加进系统环境变量。
from uiautomator import device as d
import time
import random
import os
import sys
# adb连接mumu所在端口
def adb_connect():
adb_response = os.popen("adb connect 127.0.0.1:7555")
return adb_response.read()
# 从右向左翻页
def next_page():
d.swipe(1000, 500, 30, 500)
# 阅读模式:停留时间在函数中设定
def read_book_human_mode(cur_page, max_page, total_time=300):
print("开始阅读(有人模式)")
d.screen.on()
reading_time = 0
while True:
next_page()
cur_page += 1
if cur_page >= max_page: # 超过最大页数停止
break
sleep_time = random.randint(10, 15)
time.sleep(sleep_time)
reading_time += sleep_time
if reading_time / 60 > total_time: # 超过最大时间停止
break
print("第" + str(cur_page) + "页" + "阅读" + str(sleep_time) + "s, 累计" +
str(round(reading_time / 60, 2)) + "min")
# 无人模式:平均每页停留1min
def read_book_nobody_mode(cur_page, max_page):
print("开始阅读(无人模式)")
d.screen.on()
reading_time = 0
while True:
sleep_time = random.randint(30, 50)
time.sleep(sleep_time)
reading_time += sleep_time
print("第" + str(cur_page) + "页" + "阅读" + str(sleep_time) + "s, 累计" +
str(round(reading_time / 60, 2)) + "min")
next_page()
time.sleep(60 - sleep_time)
cur_page += 1
if cur_page >= max_page: # 超过最大页数停止
break
if __name__ == '__main__':
print(adb_connect())
read_book_human_mode(int(sys.argv[1]), int(sys.argv[2]))
# read_book_nobody_mode(int(sys.argv[1]), int(sys.argv[2]))