用calibre抓取RSS新聞製作電子書及推送到kindle

來源:互聯網
上載者:User

標籤:

calibre可以從RSS源抓取內容,轉換成它所支援格式的電子書,還可以推送到閱讀器裝置。下面來看看在calibre圖形介面和命令列下如何?這些功能。

  • 在圖形介面抓取新聞
  • 自訂新聞來源
  • 看看我們自訂了什麼
  • 命令列下產生電子雜誌
  • 命令列推送到Kindle
  • 簡單定時推送的實現
  • 一些要注意的問題
  • 其它方法
  • 參考

calibre可以從RSS源抓取內容,轉換成它所支援格式的電子書,還可以推送到閱讀器裝置。下面來看看在calibre圖形介面和命令列下如何?這些功能。

在圖形介面抓取新聞

開啟calibre,在工具列中選那個“抓取新聞”,會看到按語言分類的已經定義好的各類新聞源:

點一下“立即下載”就可以把新聞抓取為電子書了。如果設定了發送到KINDLE的郵箱配置,那麼抓取完成後會自動發送郵件進行推送。

如果你有個24小時開機的電腦,可以設定一下計划下載,進行定時推送。

“刪除指定天數前下載的新聞”,和“進階選項”頁中的“最多保留份數”可以設定電子書的儲存時間。當滑鼠移動到此處時,就會自動顯示協助,可以自己看。需要說明的是,從我這看到的效果來說,這些選項只對Calibre自己有效。對於Kindle,報刊雜誌類的書籍會儲存14份,如果沒有特意保留,那麼最老的會覆蓋——不過到目前為止我還沒搞到那麼多期呢。

自訂新聞來源

點擊“抓取新聞”旁邊的下拉按鈕,選“添加自訂新聞源”,可以自己配置抓取的新聞:

配置方法就是找到你要抓取的新聞的rss地址,加入右下方的“將新聞加入訂閱清單”的源網址處,自己起個名字,再點“添加源”。一個雜誌可以加入多個源。在把所有的源加好後,修改一下“訂閱清單標題”,其後一定要“添加/更新訂閱清單”,這樣才能把修改儲存下來。否則一切都白費了。

看看我們自訂了什麼

點擊一下“切換到進階模式”,就能知道抓取新聞的配置是寫在一個Python檔案中的了。例如這個:

1234567
class AdvancedUserRecipe1417937312(BasicNewsRecipe):    title          = u‘\u79d1\u6280\u4e71\u5f39‘    oldest_article = 2    max_articles_per_feed = 20    auto_cleanup = True    feeds          = [(u‘\u79d1\u5b66\u677e\u9f20\u4f1a‘, u‘http://songshuhui.net/feed‘), (u‘\u77e5\u4e4e\u6bcf\u65e5\u7cbe\u9009‘, u‘http://www.zhihu.com/rss‘), (u‘\u679c\u58f3\u7f51 guokr.com‘, u‘http://www.guokr.com/rss/‘), (u‘\u714e\u86cb‘, u‘http://jandan.net/feed‘)]

Calibre用Python語言把配置儲存為一個.recipe的檔案。後面用命令列產生雜誌的操作會用到這些檔案。點擊“顯示訂閱資訊清單檔”,會開啟存入自訂來源的設定檔的目錄。可以從這裡獲得.recipe檔案用來在命令列下進行操作。

命令列下產生電子雜誌

Calibre附帶的命令列工具ebook-convert可以完成組建電子書的操作。比如使用:

ebook-convert 科技亂彈.recipe .mobi

這會產生一個同名的mobi檔案,可以供kindle使用。與在Calibre中產生的電子書的差別是它的標題中包括了日期的一些資訊。實際上這更便於推送到Kindle。

.recipe檔案可以自己定義,然後複製過來,或者到網上找別人做的設定檔。在嘗試搞自己的自動推送功能時,發現了一些.recipe檔案的來源,不過不一定適用於所有的Calibre:

https://github.com/RichardUSTC/calibre-recipes

https://github.com/fengli/ikindle_recipe

命令列推送到Kindle

Calibre也有命令列的郵件發送工具,可以用來進行推送雜誌到kindle的工作:

calibre-smtp --attachment 推送的檔案名稱.mobi --relay 郵箱的smtp伺服器網域名稱 --port smtp地址(一般是25) --username 郵箱帳號 --password "郵箱密碼" --encryption-method TLS 郵箱名 Kindle裝置推送郵箱(類似[email protected]) "郵件內文,內容隨便" -v -s "convert"

-s指定郵件主題,推送到Kindle必須是convert。–attachment是指定附件,就是要推送的書了。

也可以使用其它的工具。當然最好是命令列下能進行發送的。因為這樣才能做後面的定時發送。比如我用了mutt,因為我用UBUNTU。怎麼使用參考相關文檔就可以了。

簡單定時推送的實現

工具都備齊了,實現定時發送就沒什麼問題了。只要使用定時調度工具,定時啟動命令列指令碼就行了。在各類作業系統上都有定時調度工具,如Windows的計劃任務,Unix/Linux的Crontab工具等。我當然是用Crontab的,附一個簡單的指令碼:

1234567891011
# recipe檔案路徑re_path=$1cd $re_pathfor name in `ls *.recipe|awk -F ‘.‘ ‘{print $1}‘`doecho "產生雜誌$name"ebook-convert ${name}.recipe .mobisleep 3echo "${name}"|mutt -s convert [email protected] -a ${name}.mobidone

拋磚引玉而而已。我把產生的.recipe檔案複製到單獨的目錄並重新命名,這樣可以用這個指令碼通過設定不同的執行時間,將不同目錄中的recipe在不同的時間推送到Kindle。

目前準系統是有了,以後有時間再搞搞密碼加密解密,失敗重新發送之類的。

一些要注意的問題

使用Kindle的推送功能,當然別忘了把郵箱加入到kindle的認可列表中。可以用Calibre的工具進行測試和手工推送一下。

使用Calibre抓取推送時,發生過首次推送後之後就不成功的情況,後將Calibre中的書名改了一下,手工推送就成功能了。

如果經常推送不成功,可以看看產生的雜誌是不是太大。這可能造成發送郵件失敗。降低電子書大小最根本的是減少抓取的內容,包括少加幾個源,減少最老文章天數和每個源的最多文章數等。

其它方法

KindleEar是個運行在Google App Engine(GAE)上的Kindle個人推送伺服器,可以自動抓取和推送RSS。由於是運行在雲上的,就不用使用自己的電腦,也不用到點或一直開機了。最近不怎麼翻,目前沒研究。

以前愛看豆也提供類似服務,不過最近不知道還能不能用。另外網上有些收費的類似服務可以使用,也不介紹了,各位自己去找就行。

參考

除了上面提到的東東,下面是成此文所參考的一些網文:

http://zodiac1111.github.io/blog/rss2kindle-use-calibre/

http://richardustc.github.io/blog/2013/06/calibre-recipe-howto/

對Calibre轉換電子書格式的說明,比較詳細,但和本文關係不太大:http://blog.csdn.net/ccwwff/article/details/5982552

手工製作電子書:http://www.360doc.com/content/11/0224/12/3968002_95668374.shtml

如何向Kindle推送:http://www.amazon.cn/gp/help/customer/display.html?ie=UTF8&nodeId=200767340

IBM(看來是某粉的作品)的Calibre介紹,算是最全面的中文文檔了:http://www.ibm.com/developerworks/cn/opensource/os-calibre/index.html

另外man和Calibre官方網站上的資料是最重要的參考。

原文連結地址:http://pangyi.github.io/blog/20141208/yong-calibrezhua-qu-rssxin-wen-zhi-zuo-dian-zi-shu-ji-tui-song-dao-kindle/
written by PangYi?posted at http://pangyi.github.io

用calibre抓取RSS新聞製作電子書及推送到kindle

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.