epub 书是可供人们下载的开放性资源格式的电子图书。epub 文件通常与类似亚马逊Kindle 这样的电子阅读器不兼容。
一个epub 文件包含两个文件:一个包含数据的压缩文件(.zip文件)以及一个描述压缩文件信息的XML 格式文件。下面是通过python 的lxml 库来解析这个描述压缩文件信息的XML 文件。从而得到相关信息:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import zipfile
from lxml import etree
def get_epub_info(fname):
ns = {
'n': 'urn:oasis:names:tc:opendocument:xmlns:container',
'pkg': 'http://www.idpf.org/2007/opf',
'dc': 'http://purl.org/dc/elements/1.1/'
}
# prepare to read from the .epub file
_zip = zipfile.ZipFile(fname)
# find the contents metafile
txt = _zip.read('META-INF/container.xml')
tree = etree.fromstring(txt)
cfname