在kindle上閱讀網絡小說的正確方法——Kindle網文助手

起源

kindle是個好東西啊,如果長時間閱讀的話,kindle的體驗遠勝於手機、電腦。亞馬遜上有豐富的kindle電子書資源,但很遺憾,亞馬遜上沒有網絡小說。手機起點又不支持推送到kindle閱讀,如果偶爾先看看網文的話,那是真的有點淡疼……

於是,就抽出幾天零碎時間,寫了個簡單的小工具,我把它叫做Kindle網文助手。支持從網絡上下載網絡小說,並推送到 kindle 上閱讀。

請注意,此項目不提倡盜版閱讀,只因爲手機起點看書費眼,也沒有推送到 kindle 的途徑,才萌生想法編寫此項目。沒有直接爬起點網站,是嫌起點反爬太多,太麻煩了(畢竟起點要面對那麼多盜版網站的爬蟲)。網文作者寫書不易,有能力的朋友儘量訂閱支持一下。

推薦如下操作: 選擇一本想看的書 xxx => 打開起點,找到 xxx => 自動訂閱 => 打開 kindle 網文助手,緩存 xxx => 推送到 kindle 閱讀

如果真的沒有閒錢,也請註冊一下起點的賬號,加一下收藏,投一下免費的推薦票,爲你喜歡的小說點贊。寫手不易,且行且珍惜。

隨便寫寫的極簡版本,比較簡陋,湊合着用吧,等待後期迭代。

此項目只用於技術交流,請勿用於任何商業用途,否則後果自負!

轉載請註明來源:https://blog.csdn.net/aaronjny/article/details/104801162

開發環境

項目結構可以分爲三個部分,前端、後端和爬蟲。前端主要提供用戶交互功能,後端提供api服務,爬蟲提供小說抓取支持。

關於前端:

爲了快速成型,前端選擇了使用 Vue.js + Element UI 實現。沒有刻意去美化前端,畢竟自己用,功能齊全,操作方便就行。考慮到有時候會用手機打開助手,所以對頁面做了響應式佈局處理,保證在不同分辨率的屏幕上,頁面都能正常顯示。

關於後端:

編程語言使用Python3.7,Web框架選擇Flask,我不太喜歡用Django,太重量型了,Flask更輕便,想要什麼加什麼,用起來更舒服。ORM選擇了sqlalchemy。生產環境部署選擇gunicorn + gevent,畢竟只是自己用,就沒用nginx代理。

關於爬蟲:

跟第二點考慮相同,不想把項目搞得太複雜,爬蟲使用requests+beautifulsoup4實現,沒有做併發。沒做併發的原因有兩點:①反正是放在後臺跑,慢點沒關係②出於穩定性考慮,頻率高可能會導致被ban的機率提升③會使項目更復雜,要加入新的組件。關於第三點,我在付出與收益上權衡再三,決定還是不做併發——對使用體驗沒有多大影響,覺得沒啥必要。後面在實際使用中看是否有加入併發的必要。

另外,爲了最小可用模型的開發速度,目前助手裏面只加了一個網站的爬蟲,但基本上也夠用了。後續會增加更多網站爬蟲支持(可能?看懶不懶吧……)。

如果想自己增加爬蟲的話,也很簡單,我提前留好了接口。只需要在src/spiders/spider.py 中添加相關的爬蟲類,繼承 BaseSpider 類並實現相關接口即可。程序會自動解析並加載所有爬蟲。

關於數據庫:

MySQL 5.7。雖然想讓項目儘量簡單,但思來想去,數據庫還是沒法省略掉的。

關於消息隊列:

這裏消息隊列主要用於後端與爬蟲之間的通信,選擇的rabbitmq。有考慮過redis,畢竟redis+scrapy還是很舒服的。但覺得redis有點太重了,遂放棄。同理,考慮過celery做異步,也放棄了。

使用方法

這個就直接參考GitHub吧,地址如下:

WebFictionForKindle : https://github.com/AaronJny/WebFictionForKindle

簡單演示

1.打開瀏覽器,訪問主頁,默認 http://localhost:7777/,根據個人情況修改:

在這裏插入圖片描述

2.當前沒有緩存任何小說,我們搜索一下:

在這裏插入圖片描述

3.只搜索出來一個結果。看一下基本信息,這就是我需要的,所以我點擊 導入書籍。可以看到,書籍被加入到書架中,並開始緩存所有章節:

在這裏插入圖片描述

4.小說的緩存進度會自動刷新,每 5 秒刷新一次:

在這裏插入圖片描述

5.在小說緩存的過程中,我們看一下其他功能。如果需要推送小說到 kindle,還需要配置郵箱信息。點擊 配置郵箱 按鈕:

在這裏插入圖片描述

按照要求填寫各配置項,並提交。關於亞馬遜的〖發送至 Kindle〗的更多信息,可以參考瞭解如何使用〖發送至 Kindle〗電子郵箱系列文檔。

6.配置爬蟲 按鈕可以對使用的爬蟲進行管理,初始版本只加入了一個爬蟲,後面會加入更多爬蟲:

在這裏插入圖片描述

在這裏插入圖片描述

7.小說已經緩存完成了,點擊 更新 按鈕,會檢測小說是否有新增章節,並自動緩存新增章節。

在這裏插入圖片描述

8.導出 按鈕,可以導出小說的 txt 文件到本地:

在這裏插入圖片描述

在這裏插入圖片描述

我把服務跑在一個遠程小主機上了,配置很差,帶寬只有 1m,所以下載到本地有點慢。

在這裏插入圖片描述

9.更多時候,我們並不需要把 txt 導出到本地。點擊 推送 按鈕,可以直接遠程生成 txt 文件並推送到 kindle 上:

在這裏插入圖片描述

請注意,亞馬遜的文檔推送服務有一定的延遲,打開 kindle 的網絡連接,耐心等待一下,就能在 kindle 上看到這本小說。

大概就是這樣吧,刪除 就不用演示了。

結語

爲了自己方便而編寫的小項目,不知道對你是否有幫助呢?

如果喜歡這篇文章的話,麻煩給個贊吧~謝謝大佬~

再次聲明,此項目不提倡盜版閱讀,網文作者寫書不易,有能力的朋友請儘量訂閱支持一下正版。如果真的沒有閒錢,也請註冊一下起點的賬號,加一下收藏,投一下免費的推薦票,爲你喜歡的小說點贊。寫手不易,且行且珍惜。此項目只用於技術交流,禁止用於任何商業用途,否則後果自負!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章