Python 获取微信读书免费机会!

640

微信读书 App 的体验不错,也有很多的福利。但是如果你想完全免费阅读的话,就只能有书币兑换和赠一得一这两种途径了。本文介绍了自动化阅读获取书币的一个方案,有时间有兴趣的朋友可以尝试。

但是,这种方案的投产比还是很低的。基本都要挂 2周以上才能兑换一本自己喜欢的书。

文 | 萧文翰 出处 |     前端开发实用技巧公众号

用过“微信读书”的朋友都知道,如果我们想阅读全本的付费书籍,除了购买整本(使用书币)外,还可以使用无限卡。可无论是购买全书还是无限卡,归根结底都是要花银子的。

除此之外,还有一种方式——用阅读时长兑换书币。

根据目前微信读书的兑换策略,阅读半个小时,即可兑换1枚赠币,每周最多可兑换10枚赠币。因此,理论上每周我们可以使用5个小时的时间,获得最多10元等价书币。

本篇文章博主就教大家一种方法,通过模拟书籍的手动翻页,快速免费获得书币的方法,该方法仅适用于Android平台。

首先要配置好Android SDK环境变量和Python环境,最关键的是可以正常使用adb命令。这一步就不再赘述了,这里简要说明一下模拟翻页的原理,注意看下面一行命令:

adb shell input swipe 1000 600 200 600

这一行指令包含两部分操作:

  1. adb shell:进入设备的Shell命令行;

  2. input swipe 1000 600 200 600:模拟屏幕滑动,从x=1000,y=600坐标处滑动到x=200,y=600坐标处。即从右向左滑屏,也就是翻页的触摸操作;

好了,理解了这行命令后,剩下的事情就好办多了。我们只需要间隔一段时间,循环执行这句话即可。即将下面两行命令放在循环中,循环的次数由书籍的未读页数决定。

time.sleep(random.uniform(rv_t1,rv_t2))	
run('adb shell input swipe 1000 600 200 600', shell=True)

为了尽量模拟人类阅读的真实性,这里的时间间隔是给定时间范围内的随机值。

最后,为了更方便地使用这个脚本,除了正序(即从右向左滑屏)外,还增加了倒序(即从左向右滑屏)和无尽模式(即正序结束后自动倒序,倒序结束后自动正序,循环往复)。

完整的Python脚本如下:

# 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脚本吧!提醒一下:不要忘了去兑换书币,否则这些努力就白费了。

最后,请广大读者在经济允许的情况下购买正版书籍,支持作者和出版社。

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「入门资料」,立即获取主页君整理的 10 本 Python 入门书的电子版

回复关键词「m」,立即获取Python精选优质文章合集

回复关键词「book 数字」,将数字替换成 0 及以上数字,有惊喜好礼哦~

推荐阅读

题图:pexels,CC0 授权。

640?wx_fmt=jpeg

Python 微信读书是一款基于Python语言开发的用于读取微信读书内容的工具。微信读书是一款非常受欢迎的移动阅读应用程序,提供了大量的图书资源和便捷的阅读体验。而Python微信读书则是通过调用微信读书的API接口,可以实现在Python编程环境下获取微信读书的书籍信息、阅读记录等功能。 Python微信读书的功能主要包括以下几个方面: 1. 获取书籍信息:通过Python调用接口,可以获取微信读书中的各种书籍信息,包括书名、作者、出版社、简介等。这可以帮助用户在编写书评、数据分析等应用时获取到所需的图书信息。 2. 获取阅读记录:用户可以使用Python微信读书获取微信读书中的阅读记录信息,比如正在阅读的书籍、阅读进度、阅读时长等。这可以用于数据分析、用户行为研究等领域。 3. 获取书籍内容:通过Python微信读书可以获取微信读书中的书籍内容,可以实现将书籍内容保存到本地,方便用户离线阅读。 4. 自动化操作:用户可以使用Python微信读书实现一些自动化的操作,比如自动打卡、自动跳转至指定的页码等。 使用Python微信读书有一些前提条件,例如需要在微信读书开放平台注册开发者账号,获取到API接口的访问密钥。同时,开发者需要了解微信读书的API文档,了解接口的调用方式和返回数据的格式。 总之,Python微信读书为开发者提供了一种便捷的方式来读取并处理微信读书的内容,为用户的阅读体验和图书信息管理提供了更多的可能性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值