calibre recipe制作-puashu.com的recipe示例

来源:互联网 发布:丽水学院网络教学平台 编辑:程序博客网 时间:2024/05/22 15:48

本来想要看《沟通的艺术》这本书,网上找不到合适的电子版本(支持kindle的)。所以只好用puashua.com的电子书,唯一不好的就是没有图片。

puashu.com的制作电子书思路

查阅calibre提供的API请看下面的推荐阅读

电子书首页解析

在制作recipe中,因为puashu没有提供RSS服务,所以我们需要自己解析首页。即提供将要下载的文章(章节)链接。我们这里是重写了parse_index方法。

文章解析

因为在下载文章时,其中我们只需要正文内容。recipe也提供了很多方法剔除不相干的内容。这里,我们是用了recipe提供的keep_only_tags变量,即保留指定的标签。

下面是我具体的代码,很简单。

#!/usr/bin/env python2# vim:fileencoding=utf-8from __future__ import unicode_literals, division, absolute_import, print_functionfrom calibre.web.feeds.news import BasicNewsRecipefrom urlparse import urljoinclass AdvancedUserRecipe1498546263(BasicNewsRecipe):    title          = u'puashu.com'    __author__     = u'Mr.cheng'    no_stylesheets = True    #CHANGE HERE    INDEX = 'http://www.puashu.com/0/25/'    language = 'zh-CN'    max_articles_per_feed = 100    #auto_cleanup   = True    keep_only_tags = [{'id': ['chapterContent']}]    def parse_index(self):        soup = self.index_to_soup(self.INDEX)        articles=[]        div = soup.find('div', { 'class': 'chapter-bd' })        for atag in div.findAll('a'):            articles.append({'title':atag.string,'url':urljoin(self.INDEX,atag.get('href'))})        return [(soup.title.string,articles)]    def get_cover_url(self):        #CHANGE HERE        return u'http://www.puashu.com/files/article/image/0/25/25s.jpg'

推荐阅读

[1]. calibre recipes中文API文档

原创粉丝点击