[TOC]
##项目来源
这个有意思的项目是我从GitHub上找来的,起因是在不久前微信读书突然就设置了非会员书架数目上限,我总想做点什么来表达我的不满,想到可否用爬虫来获取某一本书的内容,
但是我技术有限,我使用F12进行检查,发现微信读书的网页版中的内容居然是canvas元素结合js绘制出来的图像?

但是大佬arry-lee不知通过什么方法找到了微信读书的各种接口,从而可以获取到诸如笔记、标注、想法等信息,另一位大佬liuhao326,在前一位的基础上进行了功能上的完善
可以参考他们的GitHub项目,地址如下:
https://github.com/arry-lee/wereader
https://github.com/liuhao326/pythontools/tree/master/wereader


##动手实践
###下载代码
如果你没用过GitHub也没关系,打开如下地址:https://github.com/liuhao326/pythontools
按照下图所示的操作即可下载代码文件:

将压缩包解压到一个没有中文的路径
###使用方法
####遇到的问题
原作者给出了他的使用方法:https://github.com/liuhao326/pythontools/tree/master/wereader
但我按照他的步骤,总是会存在一些错误,比如安装完依赖库后,运行程序时显示DLL模块未加载之类的错误,你可以先按照原作者的步骤尝试,如果有问题,不妨试试我的解决办法
首先我将requirement.txt中的内容进行了小小的更改,我将PyQt5中的版本要求给去掉了

然后他推荐的是下载清华的镜像,但我安装完后总有点问题,后来我用豆瓣的镜像安装就成功了。
####具体步骤

  1. 安装依赖库
    首先找到Python的安装文件夹,从中找到Scripts文件夹
    比如我的路径如下:
    C:\Users\12345\anaconda3\Scripts
    然后在此路径下,在文件资源管理器左上角,也就是显示路径的地方,输入cmd,从而直接cd到了此路径下
    输入:pip install -r requirement.txt -i https://pypi.douban.com/simple
    如果遇到安装失败就把这个命令再重复一次,或者输入:pip uninstall -y -r requirement.txt,卸载依赖库之后,再输入上一条指令重新安装依赖库
    还有一个依赖库PyQt5-tools,作者的requirement.txt中没有,但是这个可能是必要的,最好也装一下
    pip install PyQt5-tools -i https://pypi.douban.com/simple
  2. 运行程序
    有三种方法可以运行程序,cmd命令行、Windows powershell还有在IDE中(比如pycharm)运行,
    如果是前两种,那么环境变量的path中应该要有Python程序,然后cd到main.py文件所在的路径,再输入python main.py,回车即可运行
    cmd命令行中:

    Windows powershell中:

    pycharm中:
    双击main.py,会自动用pycharm打开,然后直接右键点击代码部分的空白处,选择run即可

    当出现下面这张图时,说明程序运行成功了

    扫码完成之后,
    会将你的账号下的书架中的内容按照你的分类以树形结构展开

    然后最下方出现输入书本ID的提示

    比如我选择《战争论》这本书,
    我找到其ID为856108
    输入之后得到了命令提示:

    我最喜欢的功能是print 1,输出标注(指的是自己在本书上做过记号的地方)以及print 3,输出热门标注,指的是本书被人标记得比较多的部分,这个也可以帮助你快速找到此书的思想精华。
    比如我输入print 3,
    结果如图所示:

    得到的热门标注是以Markdown格式输出在控制台上的,同时还保存在剪贴板上,你找个地方Ctrl+V就可以了,
    比如我使用印象笔记,它是支持Markdown格式的

  3. 可能发生的错误
  • 错误一
    如果发生的错误是DLL模块未加载,最好按照我前面说过的步骤,使用豆瓣的镜像重新安装依赖库PyQt5
  • 错误二
    如果是这种错误,Process finished with exit code -1073741819

    我找到一个教程说明此问题:https://blog.csdn.net/qiao1025566574/article/details/81037908
    并且我按照他说的卸载了h5py这个库,卸载命令如下:pip uninstall -y h5py
    有没有起到作用我不太清楚,诸君可以一试
  • 错误三
    如果是这种错误,[9392:21992:0731/142959.086:ERROR:permission_manager_qt.cpp(82)] NOT IMPLEMENTEDUnsupported permission type: 13
    那就没什么好的办法了,至少我不会,
    推荐一个参考链接:https://stackoverflow.com/questions/57733039/errorpermission-manager-qt-cpp82-unsupported-permission-type-13
    大佬是这么解释的:There is no way to solve from your side since it is a Qt/chromium warning, besides it is not an error it is only indicating that you do not have that permission
    意思是这不是一个错误,而是权限问题
    所以我的解决办法是,多运行几次,没错,我就是这样做的
    比如下图这样,

    如果出现了这样的情况,同时有二维码出现了,那就赶紧扫码,别管报的什么错了
  • 错误四
    诸如“KeyError BookID”这样的错误,这样的错误,一般报错的时候会提示哪一行代码出错了,我的方法是直接对作者的代码进行小小的改动,首先看错误是在哪个地方,是wereader.py还是main.py中的第几行的错误,找到之后,发现多为for循环中的错误,而且一般与字典变量有关,我推测是因为使用for循环的时候遇到了某些部分将空值或者非法的值作为字典的键值造成的。
    修改很简单,将for循环中的部分放在try中,然后在except中使用continue,也就是,出错了就跳过这部分,例如下图所示:

    像这样的地方还有很多,但是有一种情况是没有办法的,那就是想要输出热门标注,但是那本书其实没人看或者看得人太少,不存在热门标注,强行print 3,也是会出错的

Python实现微信读书辅助工具的更多相关文章

  1. TT企业微信社群辅助,企业微信社群辅助工具,允许批量添加好友,自动同意添加请求,自动回复消息

    TT企业微信社群辅助,企业微信社群辅助工具,允许批量添加好友,自动同意添加请求,自动回复消息 界面截图 TT企业微信社群辅助工具下载 链接: https://pan.baidu.com/s/1Y2An ...

  2. 打python&adb组合拳,实现微信读书永久免费读

    用过“微信读书”的朋友都知道,如果我们想阅读全本的付费书籍,除了购买整本(使用书币)外,还可以使用无限卡.可无论是购买全书还是无限卡,归根结底都是要花银子的. 除此之外,还有一种方式——用阅读时长兑换 ...

  3. Python的扩展接口[2] -> 动态链接库DLL[0] -> 动态链接库及辅助工具

    动态链接库 / Dynamic Link Library 目录 动态链接库简介 函数封装DLL 组件对象模型COM 如何判断.dll文件是COM还是DLL 辅助工具 1 动态链接库简介 / DLL I ...

  4. VSCode 小鸡汤 第01期 - REST Client 简单好用的接口测试辅助工具

    介绍 今天给大家介绍一个后端开发辅助的好工具 -- REST Client,插件如其名这就是一个 REST 的客户端插件,把我们的 VSCode 转化为一个 REST 接口测试的利器 我们一般都会用 ...

  5. Python黑帽编程1.3 Python运行时与包管理工具

    Python黑帽编程1.3  Python运行时与包管理工具 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...

  6. 使用微信web开发者工具调试微信企业号页面(前端页面,已发布在服务器上的)

    前几天写了一篇使用fiddler调试微信端页面的,然后博友评论说使用fiddler太麻烦了,推荐使用微信web开发者工具调试微信页面,这两天弄着玩了一下,很强大.这篇文章只是做一个记录,方便自己以后使 ...

  7. 【腾讯Bugly干货分享】微信读书iOS性能优化

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/578c93ca9644bd524bfcabe8 “8小时内拼工作,8小时外拼成长 ...

  8. 微信读书 iOS 性能优化总结

    微信读书作为一款阅读类的新产品,目前还处于快速迭代,不断尝试的过程中,性能问题也在业务的不断累积中逐渐体现出来.最近的 1.3.0 版本发布后,关于性能问题的用户反馈逐渐增多,为此,团队开始做一些针对 ...

  9. 微信web开发者工具调试

    微信web开发者工具调试 前几天写了一篇使用fiddler调试微信端页面的,然后博友评论说使用fiddler太麻烦了,推荐使用微信web开发者工具调试微信页面,这两天弄着玩了一下,很强大.这篇文章只是 ...

随机推荐

  1. UVA 11383 Golden Tiger Claw 题解

    题目 --> 题解 其实就是一个KM的板子 KM算法在进行中, 需要满足两个点的顶标值之和大于等于两点之间的边权, 所以进行一次KM即可. KM之后, 顶标之和就是最小的.因为如果不是最小的,就 ...

  2. mysql修改密码的三种方式

  3. 怎么查看HBase表的创建时间

    前几天HBase出现了RIT告警,忽然发现发出告警的Region所属的表并不是我创建出来的,于是就想看看这些表是怎么来的. 一时也没什么头绪,就先看看这些表是什么时候创建出来的吧,然后再根据时间点看看 ...

  4. 方正璞华Java面试总结(武汉)

    方正璞华Java面试总结(武汉) 现在社会急缺复合型人才,计算机与日语的结合,具备这两种能力的人不愁工作,最后他们大多到的也是日企,甚至到日本去工作.至今为止接触的日企有光庭.方正璞华.先锋·商泰.英 ...

  5. 03-Python控制语句

    一.简介 通过一些语句来改变程序的执行顺序,这些语句被叫做控制语句,在python主要有if.for.while三种控制流语句. 二.if语句 用来检测一个条件是否成立,如果为真,则执行该语句(一般为 ...

  6. 【其他-小技巧-Uipath】VB语法操作DataTable分组并求和

    需要对DataTable分组求和的语法:VB.net 和C#中还有点不太一样.最后试了好多方法,要这么写 我的dataTabel数据: (From p In dataTabel.AsEnumerabl ...

  7. Burp Suite Decoder Module - 解码模块

    官方参考链接:https://portswigger.net/burp/documentation/desktop/tools/decoder 该模块主要进行编码和解码,支持编码方式有:Plain,U ...

  8. Ethical Hacking - NETWORK PENETRATION TESTING(24)

    Detecting suspicious activities using Wireshark You can use make the MAC address of the router to st ...

  9. Spring声明式事务快速上手

    1.什么是事务 首先我们要知道什么是事务.知其然,才能知其所以然. 事务(Transaction)是一个业务,是一个不可分割的逻辑工作单元,基于事务可以更好的保证业务的正确性. 这么说可能有点难以理解 ...

  10. 集训作业 洛谷P1032 字串变换

    集训的题目有点多,先写困难的绿题吧(简单的应该想想就会了) 嗯,这个题看起来像个搜索呢(就是个搜索) 我们仔细想想就知道这个题肯定不能用深搜,可以优化的地方太少了,TLE是必然的. 那我们该怎么办呢? ...