V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Higurashi
V2EX  ›  Python

[爬虫]:微信读书笔记工具, markdown 导出,可自定义导出格式,欢迎 star~

  •  1
     
  •   Higurashi · 2020-05-19 00:22:17 +08:00 · 3391 次点击
    这是一个创建于 1657 天前的主题,其中的信息可能已经有所发展或是发生改变。

    注册满 30 天,终于可以发链接了😭

    本项目基于@arry-lee的项目wereader修改而来,并借鉴了@shengqiangzhang一键导出微信读书的书籍和笔记中的 GUI 登录方法,感谢原作者、感谢开源。

    主要功能

    1. 获取某本书的全部标注(笔记)
    2. 获取某本书指定章节的标注
    3. 获取某本书你的个人想法
    4. 获取某一本书的热门划线
    5. 获取某本书的目录
    6. 获取某本书的详情(书本信息)
    7. 获取某本书你的最新标注
    8. 获取书架上的书籍列表
    9. 自定义标注效果、标题级别

    简单介绍

    输入命令

    python main.py
    

    运行程序之后。

    程序会提示登录,登录成功后会输出书架并提示输入书本 id(书名前面的那一串数字):

    输入 id 后会列出操作指南:

    这时候有两类操作可以选择:print选项的功能是输出内容到控制台并复制到剪切板;push选项的功能是将内容追加到文件末尾。

    比如,现在想要将这本书的想法输出到控制台并复制到剪切板,只需要输入print 2再回车:

    同样,如果想要将想法追加到文件,输入push 2即可:

    至于“个人最新标注”,是用来随时输出新标注(而不让内容重复)的功能。

    假设你喜欢读一部分做一部分的笔记,那么这个功能可能比较有帮助。

    push 1print 1只能够输出书中的所有标注或某一章的标注,这使得你要么全部做好笔记后一次性导出标注,要么每读完一章后做一次笔记。

    push 6print 6则能够让你随时导出最新标注好的内容(初次使用时将只是记录最新内容所在位置,相当于初始化)。这个选项中有两种寻找最新内容的方式,一种效果不佳可以尝试另一种。

    如何运行

    # 跳转到当前目录
    cd 目录名
    # 安装依赖库
    pip install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    # 开始运行
    python main.py
    

    如果运行出错,尝试先卸载依赖库:

    # 跳转到当前目录
    cd 目录名
    # 先卸载依赖库
    pip uninstall -y -r requirement.txt
    # 再重新安装依赖库
    pip install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    # 开始运行
    python main.py
    

    自定义标注效果

    可以编辑源文件来设置标注效果。

    打开wereader.py,找到下面的代码:

    level1 = '##'#(微信读书)一级标题
    level2 = '###'#二级标题
    level3 = '####'#三级标题
    style1 = {'pre': "",   'suf': ""}#(微信读书)红色下划线
    style2 = {'pre': "**",   'suf': "**"}#橙色背景色
    style3 = {'pre': "",   'suf': ""}#蓝色波浪线
    thought_style = {'pre': "```\n",   'suf': "\n```"}#想法前后缀
    hotmarks_number = {'pre': "`",   'suf': "`  "}#热门标注标注人数前后缀
    

    三个level变量分别代表三级标题,如果你想将改变导出内容的标题级别,可以在这里修改井号个数。

    三个style变量代表微信读书中的三种标注(见注释),可以在这里设置标注效果,pre代表前缀,suf代表后缀。

    比如这里的设置表示:不给用红色下划线和蓝色波浪线标注的部分添加前缀和后缀、给橙色背景色标注的部分添加前后缀**,也就是给它加粗。如果你想要将红色下划线标注的部分设置为 Markdown 格式的下划线内容,只需要将style1设置为style1 = {'pre': "<u>", 'suf': "</u>"},也就是给它添加 Markdown 中的下划线标签。

    变量thought_stylehotmarks_number类似,分别用于设置想法和热门标注人数的前后缀。

    补充

    项目托管于GitHub

    欢迎 PR 和 star,有什么问题也可以提 issue 。

    20 条回复    2020-10-23 21:51:49 +08:00
    zhiiker
        1
    zhiiker  
       2020-05-19 02:22:41 +08:00   ❤️ 1
    试试,已 star
    lynnyl6969
        2
    lynnyl6969  
       2020-05-19 11:16:19 +08:00   ❤️ 1
    支持一下
    lynnyl6969
        3
    lynnyl6969  
       2020-05-19 11:36:20 +08:00
    试了一下,挺好用的。不过我书架里的书有点多,好像输出的书架目录不是按照最近阅读的顺序排的,找起来有点费劲,可能是我没分类的原因吧。
    everydiao
        4
    everydiao  
       2020-05-19 12:37:17 +08:00   ❤️ 1
    好棒!如果能做出来一个 app,获取微信读书的点评笔记,再把自己的点评笔记提交上去,可以互动交流那就太棒了!我去 start
    Higurashi
        5
    Higurashi  
    OP
       2020-05-19 12:48:34 +08:00
    @lynnyl6969 嗯,的确按顺序排才好,我看看。
    Higurashi
        6
    Higurashi  
    OP
       2020-05-19 12:51:40 +08:00
    @everydiao 好点子,的确做一个 APP 可能还更加方便😃
    everydiao
        7
    everydiao  
       2020-05-19 12:52:26 +08:00
    @Higurashi 所以大佬你要做吗?我帮你推广啊
    Higurashi
        8
    Higurashi  
    OP
       2020-05-19 13:29:44 +08:00
    @everydiao 打算边学边做,不过暂时做不出来哦,你可以试试
    ads1029
        9
    ads1029  
       2020-05-19 18:19:26 +08:00
    已 start. 话说犬夜叉要出新作了 hhh
    Higurashi
        10
    Higurashi  
    OP
       2020-05-19 18:29:14 +08:00
    @ads1029 嗯呀!有些期待哎。
    Higurashi
        11
    Higurashi  
    OP
       2020-05-19 18:32:25 +08:00
    @lynnyl6969 已完善💻
    lynnyl6969
        12
    lynnyl6969  
       2020-05-20 10:06:35 +08:00   ❤️ 1
    @Higurashi 好的辛苦啦
    lynnyl6969
        13
    lynnyl6969  
       2020-05-20 14:48:59 +08:00
    @Higurashi 出现了新的 bug,书架里有公众号文章的时候,bookId 不能用 int 进行强制类型转换。我这运行报错了
    Higurashi
        14
    Higurashi  
    OP
       2020-05-20 17:03:09 +08:00 via Android
    @lynnyl6969 嗯,的确有这个问题,公众号获取数据也有差别,我看看
    Higurashi
        15
    Higurashi  
    OP
       2020-05-20 22:08:59 +08:00
    @lynnyl6969 已完善💻,公众号能够输出标注,但暂时不支持输出想法等功能📌
    cloudBird
        16
    cloudBird  
       2020-05-22 13:43:58 +08:00
    看了一下,真的不错,不过目前微信读书网页版本身有些数据不齐全的。
    Higurashi
        17
    Higurashi  
    OP
       2020-05-22 14:26:06 +08:00
    @cloudBird 嗯,微信读书网页版不用扩展的话好像不能够导出笔记,也没有查看想法等功能。
    Higurashi
        18
    Higurashi  
    OP
       2020-10-23 19:32:37 +08:00
    😀
    Higurashi
        19
    Higurashi  
    OP
       2020-10-23 21:51:25 +08:00
    测试😄
    Higurashi
        20
    Higurashi  
    OP
       2020-10-23 21:51:49 +08:00
    测试😺
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2550 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 04:36 · PVG 12:36 · LAX 20:36 · JFK 23:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.