百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python 获取微信读书免费机会(微信读书获取书籍)

off999 2024-11-09 12:48 16 浏览 0 评论

微信读书 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坐标处。即从右向左滑屏,也就是翻页的触摸操作;

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

  1. time.sleep(random.uniform(rv_t1,rv_t2))

  2. run('adb shell input swipe 1000 600 200 600', shell=True)

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

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

完整的Python脚本如下:

  1. # encoding:utf-8



  2. from subprocess import run

  3. import time

  4. import random

  5. import os


  6. def book(rv_sel, rv_page_num, rv_t1, rv_t2):

  7. rv_sel = int(rv_sel)

  8. if rv_sel == 1:

  9. print('程序运行中')

  10. for i in range(rv_page_num):

  11. time.sleep(random.uniform(rv_t1,rv_t2))

  12. run('adb shell input swipe 1000 600 200 600', shell=True)

  13. n = i + 1

  14. print('总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页' % (rv_page_num, n, rv_page_num - n))

  15. exit

  16. elif rv_sel == 2:

  17. print('程序运行中')

  18. for i in range(rv_page_num):

  19. time.sleep(random.uniform(rv_t1,rv_t2))

  20. run('adb shell input swipe 200 600 1000 600', shell=True)

  21. n = i + 1

  22. print('总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页' % (rv_page_num, n, rv_page_num - n))

  23. exit

  24. else:

  25. print

  26. print('* ' * 8, '1.正循环-倒循环,无限循环', '* ' *8)

  27. print('* ' * 8, '2.倒循环-正循环,无限循环', '* ' *8)

  28. print

  29. loop = int(input('请选择循环方式:'))

  30. print('程序运行中')

  31. if loop == 1:

  32. while 1:

  33. for i in range(rv_page_num):

  34. time.sleep(random.uniform(rv_t1,rv_t2))

  35. run('adb shell input swipe 1000 600 200 600', shell=True)

  36. n = i + 1

  37. print('总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页' % (rv_page_num, n, rv_page_num - n))

  38. for i in range(rv_page_num):

  39. time.sleep(random.uniform(rv_t1,rv_t2))

  40. run('adb shell input swipe 200 600 1000 600', shell=True)

  41. n = i + 1

  42. print('总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页' % (rv_page_num, n, rv_page_num - n))

  43. else:

  44. while 1:

  45. for i in range(rv_page_num):

  46. time.sleep(random.uniform(rv_t1,rv_t2))

  47. run('adb shell input swipe 200 600 1000 600', shell=True)

  48. n = i + 1

  49. print('总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页' % (rv_page_num, n, rv_page_num - n))

  50. for i in range(rv_page_num):

  51. time.sleep(random.uniform(rv_t1,rv_t2))

  52. run('adb shell input swipe 1000 600 200 600', shell=True)

  53. n = i + 1

  54. print('总计需翻阅 %d 页,已翻阅 %d 页,剩余 %d 页' % (rv_page_num, n, rv_page_num - n))


  55. def rand_time(rv_xh):

  56. if int(rv_xh) == 1:

  57. return 10,20

  58. else:

  59. while 1:

  60. t1 = int(input('请输入最小等待时间:'))

  61. t2 = int(input('请输入最大等待时间:'))

  62. if t2 >= t1:

  63. return t1,t2

  64. break

  65. else:

  66. print('最小时间不得小于最大时间,请重新输入')


  67. print('* ' * 50,)

  68. print('请选择翻页间隔时间:')

  69. print('1.预设(10秒 - 20秒之间):')

  70. print('2.自定义(大于0):',)

  71. print('* ' * 50,)

  72. while 1:

  73. xh = input('请输入序号:')

  74. if xh == '':

  75. print('输入有误,请重新输入')

  76. elif xh in str([1,2]):

  77. t1,t2 = rand_time(xh)

  78. break

  79. else:

  80. print('输入有误,请重新输入')

  81. while 1:

  82. print

  83. print('* ' * 8, '1.正序', '* ' *8)

  84. print('* ' * 8, '2.倒序', '* ' *8)

  85. print('* ' * 8, '3.无尽', '* ' *8)

  86. print

  87. sel = input('请选择翻书方式:')

  88. if sel in str([1,2,3]):

  89. page_num = int(input('请输入书籍总页数:'))

  90. book(sel,page_num,t1,t2)

  91. elif sel == '':

  92. print('输入错误')

  93. else:

  94. print('输入错误')

下面开始连接真机,然后启动App,随便打开一本书,最后打开命令行,运行这个Python脚本吧!提醒一下:不要忘了去兑换书币,否则这些努力就白费了。

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

题图:pexels,CC0 授权。

相关推荐

PYTHON-简易计算器的元素介绍

[烟花]了解模板代码的组成importPySimpleGUIassg#1)导入库layout=[[],[],[]]#2)定义布局,确定行数window=sg.Window(&#...

如何使用Python编写一个简单的计算器程序

Python是一种简单易学的编程语言,非常适合初学者入门。本文将教您如何使用Python编写一个简单易用的计算器程序,帮助您快速进行基本的数学运算。无需任何高深的数学知识,只需跟随本文的步骤,即可轻松...

用Python打造一个简洁美观的桌面计算器

最近在学习PythonGUI编程,顺手用Tkinter实现了一个简易桌面计算器,功能虽然不复杂,但非常适合新手练手。如果你正在学习Python,不妨一起来看看这个项目吧!项目背景Tkint...

用Python制作一个带图形界面的计算器

大家好,今天我要带大家使用Python制作一个具有图形界面的计算器应用程序。这个项目不仅可以帮助你巩固Python编程基础,还可以让你初步体验图形化编程的乐趣。我们将使用Python的tkinter库...

用python怎么做最简单的桌面计算器

有网友问,用python怎么做一个最简单的桌面计算器。如果只强调简单,在本机运行,不考虑安全性和容错等的话,你能想到的最简单的方案是什么呢?我觉得用tkinter加eval就够简单的。现在开整。首先创...

说好的《Think Python 2e》更新呢!

编程派微信号:codingpy本周三脱更了,不过发现好多朋友在那天去访问《ThinkPython2e》的在线版,感觉有点对不住呢(实在是没抽出时间来更新)。不过还好本周六的更新可以实现,要不就放一...

构建AI系统(三):使用Python设置您的第一个MCP服务器

是时候动手实践了!在这一部分中,我们将设置开发环境并创建我们的第一个MCP服务器。如果您从未编写过代码,也不用担心-我们将一步一步来。我们要构建什么还记得第1部分中Maria的咖啡馆吗?我们正在创...

函数还是类?90%程序员都踩过的Python认知误区

那个深夜,你在调试代码,一行行检查变量类型。突然,一个TypeError错误蹦出来,你盯着那句"strobjectisnotcallable",咖啡杯在桌上留下了一圈深色...

《Think Python 2e》中译版更新啦!

【回复“python”,送你十本电子书】又到了周三,一周快过去一半了。小编按计划更新《ThinkPython2e》最新版中译。今天更新的是第五章:条件和递归。具体内容请点击阅读原文查看。其他章节的...

Python mysql批量更新数据(兼容动态数据库字段、表名)

一、应用场景上篇文章我们学会了在pymysql事务中批量插入数据的复用代码,既然有了批量插入,那批量更新和批量删除的操作也少不了。二、解决思路为了解决批量删除和批量更新的问题,提出如下思路:所有更新语...

Python Pandas 库:解锁 combine、update 和compare函数的强大功能

在Python的数据处理领域,Pandas库提供了丰富且实用的函数,帮助我们高效地处理和分析数据。今天,咱们就来深入探索Pandas库中四个功能独特的函数:combine、combine_fi...

记录Python3.7.4更新到Python.3.7.8

Python官网Python安装包下载下载文件名称运行后选择升级选项等待安装安装完毕打开IDLE使用Python...

Python千叶网原图爬虫:界面化升级实践

该工具以Python爬虫技术为核心,实现千叶网原图的精准抓取,突破缩略图限制,直达高清资源。新增图形化界面(GUI)后,操作门槛大幅降低:-界面集成URL输入、存储路径选择、线程设置等核心功能,...

__future__模块:Python语言版本演进的桥梁

摘要Python作为一门持续演进的编程语言,在版本迭代过程中不可避免地引入了破坏性变更。__future__模块作为Python兼容性管理的核心机制,为开发者提供了在旧版本中体验新特性的能力。本文深入...

Python 集合隐藏技能:add 与 update 的致命区别,90% 开发者都踩过坑

add函数的使用场景及错误注意添加单一元素:正确示例:pythons={1,2}s.add(3)print(s)#{1,2,3}错误场景:试图添加可变对象(如列表)会报错(Pytho...

取消回复欢迎 发表评论: