用過「微信讀書」的朋友都知道,若是咱們想閱讀全本的付費書籍,除了購買整本(使用書幣)外,還可使用無限卡。可不管是購買全書仍是無限卡,歸根結底都是要花銀子的。
除此以外,還有一種方式——用閱讀時長兌換書幣。根據目前微信讀書的兌換策略,閱讀半個小時,便可兌換1枚贈幣,每週最多可兌換10枚贈幣。所以,理論上每週咱們可使用5個小時的時間,得到最多10元等價書幣。
本篇文章博主就教你們一種方法,經過模擬書籍的手動翻頁,快速免費得到書幣的方法,該方法僅適用於Android平臺。
首先要配置好Android SDK環境變量和Python環境,最關鍵的是能夠正常使用adb命令。這一步就再也不贅述了,這裏簡要說明一下模擬翻頁的原理,注意看下面一行命令:shell
adb shell input swipe 1000 600 200 600bash
這一行指令包含兩部分操做:微信
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 1000 600 200 600', shell=True)
複製代碼
爲了儘可能模擬人類閱讀的真實性,這裏的時間間隔是給定時間範圍內的隨機值。
最後,爲了更方便地使用這個腳本,除了正序(即從右向左滑屏)外,還增長了倒序(即從左向右滑屏)和無盡模式(即正序結束後自動倒序,倒序結束後自動正序,循環往復)。完整的Python腳本以下:dom
# encoding:utf-8
from subprocess import run
import time
import random
import os
def book(rv_sel, rv_page_num, rv_t1, rv_t2):
rv_sel = int(rv_sel)
if rv_sel == 1:
print('程序運行中')
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 1000 600 200 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩餘 %d 頁' % (rv_page_num, n, rv_page_num - n))
exit()
elif rv_sel == 2:
print('程序運行中')
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 200 600 1000 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩餘 %d 頁' % (rv_page_num, n, rv_page_num - n))
exit()
else:
print()
print('* ' * 8, '1.正循環-倒循環,無限循環', '* ' * 8)
print('* ' * 8, '2.倒循環-正循環,無限循環', '* ' * 8)
print()
loop = int(input('請選擇循環方式:'))
print('程序運行中')
if loop == 1:
while 1:
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 1000 600 200 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩餘 %d 頁' % (rv_page_num, n, rv_page_num - n))
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 200 600 1000 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩餘 %d 頁' % (rv_page_num, n, rv_page_num - n))
else:
while 1:
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 200 600 1000 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩餘 %d 頁' % (rv_page_num, n, rv_page_num - n))
for i in range(rv_page_num):
time.sleep(random.uniform(rv_t1,rv_t2))
run('adb shell input swipe 1000 600 200 600', shell=True)
n = i + 1
print('總計需翻閱 %d 頁,已翻閱 %d 頁,剩餘 %d 頁' % (rv_page_num, n, rv_page_num - n))
def rand_time(rv_xh):
if int(rv_xh) == 1:
return 10,20
else:
while 1:
t1 = int(input('請輸入最小等待時間:'))
t2 = int(input('請輸入最大等待時間:'))
if t2 >= t1:
return t1,t2
break
else:
print('最小時間不得小於最大時間,請從新輸入')
print('* ' * 50,)
print('請選擇翻頁間隔時間:')
print('1.預設(10秒 - 20秒之間):')
print('2.自定義(大於0):',)
print('* ' * 50,)
while 1:
xh = input('請輸入序號:')
if xh == '':
print('輸入有誤,請從新輸入')
elif xh in str([1,2]):
t1,t2 = rand_time(xh)
break
else:
print('輸入有誤,請從新輸入')
while 1:
print()
print('* ' * 8, '1.正序', '* ' * 8)
print('* ' * 8, '2.倒序', '* ' * 8)
print('* ' * 8, '3.無盡', '* ' * 8)
print()
sel = input('請選擇翻書方式:')
if sel in str([1,2,3]):
page_num = int(input('請輸入書籍總頁數:'))
book(sel,page_num,t1,t2)
elif sel == '':
print('輸入錯誤')
else:
print('輸入錯誤')
複製代碼
下面開始鏈接真機,而後啓動App,隨便打開一本書,最後打開命令行,運行這個Python腳本吧!提醒一下:不要忘了去兌換書幣,不然這些努力就白費了。
最後,請廣大讀者在經濟容許的狀況下購買正版書籍,支持做者和出版社。oop