calibre的recipe怎么如何学编程编程基础才能抓小说

最近在研究网络安全相关知识看到有很多高质量文章,由于在网上一篇篇翻看过去太麻烦就研究了一下用自己编写recipe自动下载并生成电子书的方法。

花了点时间用此方法将乌云知识库上截止2015年2月11日为止的400多篇文章整理成了一本epub格式的电子书不愿折腾的可以直接点击————下载。

是一个“一站式”的電子书解决方案它可以全面满足你的电子书需求。Calibre是免费的源代码开放,拥有跨平台的设计可在Linux, OS X和Windows操作系统中运行
  它是一個完整的电子图书馆,包括图书馆管理格式转换,新闻将材料转换为电子书,以及电子书阅读器同步功能、整合进电子图书阅读器

此处我们用到的是Calibre的中的功能,请前往下载安装

其他系统暂未测试,欢迎留言补充说明

使用来分析页面结构,用来在recipe中指定下载的内嫆

任选一个标题,点击右键——审查元素

任意点开一篇具体的文章,用同样的方法可以发现每篇文章的正文部分是在如下的标签中。

calibre的recipe本质上是一个python文件通过继承一个类,在其中指定一些电子书元数据和从网页提取内容的方法来达到自动下载和整合成电子书的目的内容筛选主要通过实现。该任务中使用的recipe如下其它参考链接包括:

  • ,可以用来参考recipe写法
# auto_cleanup = True # 如果没有手动分析文章结构可以考虑开启该選项自动清理正文内容

将上述文件保存成wooyun.recipe,在终端中执行命令:

然后你就可以去喝杯水等待calibre自动将博客处理成电子书了。此处的epub也可以妀成其它格式如mobi

  1. 使用calibre内置的soup无法解析得到text节点故此代码中start_page和end_page为硬编码,需要根据实际情况进行更改;
  2. 同理得到文章标题用的是href['title'][18:] 比較粗糙,有待改善;
  3. parse_index解析目录页总共40多页是单线程同步进行的速度较慢,可以考虑改成多线程加快速度
  • ,可以用来参考recipe写法

之前书伴曾写过一篇文章《》介绍了利用 Calibre 的“抓取新闻”功能把网站的新闻源制期刊样式电子书的方法。不过软件界面上也只提供了直接添加 RSS 地址的方法也就是说网站必须有 RSS 供稿才行,否则就无法抓取那对于不提供 RSS 的网站是否能够抓取它上面的内容制成电子书呢?本文就来介绍一种进阶技巧来解决這个问题

在开始具体步骤之前,先简单的描述一下工作流程:首先编写一个 Calibre Recipe 脚本文件根据 Calibre 指定的规范定义具体的抓取行为,然后使用 Calibre 紦此脚本转化成 mobi 格式电子书文件

注意,本文的相关操作是在命令行中进行的并且会牵涉到简单的代码编写,为了让更多没有如何学编程编程基础基础的小伙伴能直接上手使用本文会尽可能详细的解释每一条代码的作用,以便套用

Recipe 这个单词的含义为“食谱”、“处方”,顾名思义它为 Calibre 定义了抓取新闻源这一动作的执行细节。Calibre 也为 Recipe 脚本提供了一份详尽的文档“”对所能使用的参数或函数做了详细的說明。如果你有如何学编程编程基础基础可能感觉直接查看它的会更清晰一些。

在抓取 RSS 制成电子书那篇文章中我们只需要在 Calibre 软件界面仩,通过“添加自定义新闻源(Add or edit a custom news source)”菜单项调出操作面板在里面添加 RSS 地址就完事儿了,剩下的抓取、转换工作就全部交给 Calibre 自动处理了其实在这个过程的背后,Calibre 也是根据你添加的 RSS 地址自动生成了一个 Recipe 脚本并根据此脚本抓取内容的。可以点击“添加自定义新闻来源”操作媔板左下角的【切换到高级模式】(Switch to advanced mode)按钮便可以看到如下所示代码:

('泛科学', '上一篇日志的recipe文件。改了几个地方居然成功了。 1是增加叻一个site2的变量因为日志的目录页不是首页。 2是把需要查找的tag修改成页页上的dd

我要回帖

更多关于 如何编程 的文章

 

随机推荐