Python實現微信讀書輔助工具

項目來源

這個有意思的項目是我從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,也是會出錯的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章