calibre抓取“爱上中文”网小说的recipe

        抓取每一个网站的内容,生成 epub往往都有要编写一个recipe。其实大部分的结构是比较类似的,不用太大的变化,尤其一个网站的书箱,可以使用同一个recipe,只要针对每本书,修改一下url,图书的标题,书名,描述就行,以“爱上中文”网为例,其每一本书都有一个目录页,页面中包含了书籍的封面,内容简介,每章的名字,url等。章节目录都在一个<table cellspacing='1'>的标签之中,使用find('table',attrs = {'cellspacing': "1"})就初步包含了目录,再使用findAll('a')把所有的标题和url取出,就可生成feeds。

每个章节的页面中我们只要两个div中的内容就行,一个div class="bdb"是章节名称,一个div id="contents"是章节内容,直接写入keep_only_tags就行。

具体程序如下:

# coding=gbk
from calibre.web.feeds.recipes import BasicNewsRecipe


class jpyx(BasicNewsRecipe):
title = u"绝品医仙"                                  #自己写入书名
description = u"修真天才遭女师祖欺骗让榨干而亡,竟然重生成都市内无恶不作的豪门大少。不是猛龙不过江,不是大少不嚣..."      #自己写入描述
recursions = 0
max_articles_per_feed = 1000
oldest_article = 5000
remove_javascript = True

cover_url = "http://www.aszw.com/files/article/image/35/35901/35901s.jpg"                                           #自己写入封面的URL
url_prefix = "http://www.aszw.com/book/35/35901/"                                                                                       #自己写入每章url的前缀,基本上就是目录页的url
no_stylesheets = True
keep_only_tags =[dict(name='div', attrs={'class':'bdb'}),
dict(name='div', attrs={'id':'contents'}),
]   #要保留的标签



def get_title(self,link):
return link.contents[0].strip()

def parse_index(self):

soup = self.index_to_soup('http://www.aszw.com/book/35/35901/')                                                   #自己写入目录页的url
aa = soup.find('table',attrs = {'cellspacing': "1"}).findAll('a')
articles = []
for link in aa:
title = self.get_title(link)
title = title.encode("utf-8") #处理中文,转换代码
url = self.url_prefix + link['href']
a = {'title':title,'url':url}
articles.append(a)
#print articles
ans = [(u'绝品医仙',articles)]                                                                                                                         #自己写入书名
return ans


这样抓取“爱上中文“网的小说,生成epub、pdf等电子书已经不是问题。不需要麻烦的编辑了。下载时请注意察看目录中有没有章节是图片,那个比较麻烦的。从已经抓取的书箱看效果还是比较好的。不过页面中经常有广告,只能用SIGIL来删除了,那也是个超级好的东东。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Calibre 可以完成对各种格式的电子书籍的管理和格式转换。尤其对于拥有手机/iPad等电子阅读器或E Ink设备的同学来说,这个软件尤其具有价值。如果把电子书想象成MP3音乐的话,Calibre的功能可以类比于iTunes。它还可以把络上的新闻或RSS下载转换成电子书格式,同步到相关的阅读设备中,这是一个非常实用的功能。 Calibre 功能介绍 Calibre 可以完成对各种格式的电子书籍的管理和格式转换。尤其对于拥有手机/ipad等电子阅读器或E Ink设备的同学来说,这个软件尤其具有价值。如果把电子书想象成MP3音乐的话,Calibre的功能可以类比于iTunes。它还可以把络上的新闻或RSS下载转换成电子书格式,同步到相关的阅读设备中,这是一个非常实用的功能。 Calibre 可以从 Google Books 或 Amazon 等站下载书籍的元数据,包括书籍的名称、作者、出版社、封面或者读者评价等信息。 Calibre 犹如一个电子书的图书馆,它支持大多数格式的电子书文件,只要用鼠标将文件轻轻一拽,即可把电子书添加到 Calibre 中来。 Calibre 是一个“一站式”的电子书解决方案,包括图书馆管理、格式转换、阅读等功能,只要你想得到的电子书功能,它都能帮你一一实现。 Calibre 是一个免费、开源和跨平台的软件,是您的电子书好管家,让您轻松管理、轻松阅读。 Calibre 不是一个电子书下载软件,它只能从上下载书籍的信息,但不能下载书籍本身。Calibre 不是电子书制作工具,虽然它提供格式转换功能,且在转换过程中提供一些定制功能,但这些功能非常有限,并不能用于精细控制和从头制作电子书。 优点是功能全,可定制化程度高,可以折腾。缺点是体积庞大、速度慢、BUG较多(不过修得很快) Calibre 功能特点 通过Calibre 可以把需要的资料、新闻、信息、文档转换成电子书格式,手机/iPad无疑是最大的电子书阅读平台,使用Calibre V0.8.16 特别版可以轻松把需要资料转换制作成你需要的格式以便保存到移动阅读设备中阅读。 Calibre 特别版强大的电子书管理功能,它提供电子书籍管理、元信息整理、格式转换、阅读设备书籍同步、新闻下载等,可以完全满足你一站式的需要。 尤其对于拥有手机/iPad等电子阅读器或EInk设备的同学来说,这个软件尤其具有价值。 如果把电子书想象成MP3音乐的话,Calibre的功能可以堪比itunes。它还可以把络上的新闻或RSS下载转换成电子书格式,同步到相关的阅读设备中,这是一个非常实用的功能。 Calibre 支持 EPUB、PDF、MOBI、RAR、ZIP、RTF、LIT、TXT、TXTZ、TEXT、HTM、XHTM、HTML、HTMLZ、XHTML、PDB、UPDB、PDR、PRC、FB2、DJV、DJVU、LRX、AZW、AZW1、AZW3、AZW4、TPZ、SNB、CBC、CBR、CBZ、ODT 等众多主流的电子书格式的阅读或转换,新版本还支持微软 Office 的 DOCX、DOC 文档格式转换了,基本可以满足大多数人的需求了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值