当前位置: 首页 > news >正文

从BLOG到电子书——把wordpress备份的WXR转为epub

古人云,敝帚自珍。

虽然自己写的BLOG都是些没营养的东西,但还是想收藏起来。

花了点时间研究了一下epub格式,写了段转换程序,把Wordpress导出的备份文件WXR转成epub格式。

本想贴代码凑数,结果发现代码还是多了点,所以还是改成下载吧。

第一个是生成epub的库:epubbuilder.py

(源码附后)

之后是解析WXR并调用epubbuilder生成epub的主程序:wxr2epub.py

(源码附后)

下载:wxr2epub source code 5.4K(GPL)。

使用时在源目录下放一个叫做wordpress.xml的WXR文件,再创建一个images的子目录,里面放上文章中所有引用过的图片,最好有一个叫cover.jpg的,这个图片将会被作为电子书的封面。生成的电子书每一篇文章及其评论会作为电子书的一个章节,文章多的话,目录项会很多,某些电子书软件可能无法完全显示所有目录项。

所以说,还是开放好啊。Wordpress的WXR用的是开放的XML格式,epub也是用开放的zip+HTML+XML格式。

像CSDN BLOG这种自己开发的平台就没办法了……当然也不是完全没有办法,可以自己写一个爬虫去把页面全抓下来,再用pyquery之类的解析出内容,然后生成epub。不过这就麻烦得多了,除了程序写起来麻烦以外,还要防止爬得过猛被网站封IP之类的副作用——这事我也干过,不过不是对CSDN。



相关文章:

  • 【数据结构栈和队列】之十队列顺序存储结构
  • ORA-00980: synonym translation is no longer valid, version 9
  • [原创] css中的绝对定位和相对定位
  • 页面触底自动加载数据
  • SSL配置及练习
  • 从上百幅架构图中学得半点大型网站建设经验(上)
  • jquery选择器
  • 深切悼念苹果的老大乔布斯
  • css理论
  • windwos7 em控制台使用操作系统用户错误
  • angular4.0如何引入外部插件1:import方案
  • Thinking in React Implemented by Reagent
  • Streams复制文档
  • 动手动脑(课后实验):类和对象
  • 金额字段加千位分隔符
  • Brief introduction of how to 'Call, Apply and Bind'
  • Less 日常用法
  • ReactNative开发常用的三方模块
  • Sequelize 中文文档 v4 - Getting started - 入门
  • swift基础之_对象 实例方法 对象方法。
  • Vim Clutch | 面向脚踏板编程……
  • Vue实战(四)登录/注册页的实现
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 首页查询功能的一次实现过程
  • 微信开源mars源码分析1—上层samples分析
  • 线性表及其算法(java实现)
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • #Linux(Source Insight安装及工程建立)
  • #宝哥教你#查看jquery绑定的事件函数
  • $forceUpdate()函数
  • (2)nginx 安装、启停
  • (solr系列:一)使用tomcat部署solr服务
  • (接口自动化)Python3操作MySQL数据库
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET Framework .NET Core与 .NET 的区别
  • .NET下的多线程编程—1-线程机制概述
  • .NET正则基础之——正则委托
  • @AutoConfigurationPackage的使用
  • @Autowired注解的实现原理
  • @Bean注解详解
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [APUE]进程关系(下)
  • [BJDCTF2020]The mystery of ip
  • [C#]winform部署yolov9的onnx模型
  • [C/C++] C/C++中数字与字符串之间的转换
  • [C++] new和delete
  • [flask]http请求//获取请求头信息+客户端信息
  • [HDU] 1054 Strategic Game 入门树形DP
  • [ios] IOS文件操作的两种方式:NSFileManager操作和流操作【转】
  • [iOS]如何删除工程里面用cocoapods导入的第三方库
  • [JS设计模式]Prototype Pattern