【问题标题】:Python library to extract 'epub' information [closed]用于提取“epub”信息的 Python 库 [关闭]
【发布时间】:2011-03-08 02:03:36
【问题描述】:

我正在尝试在 python 中为 iBook 创建一个 epub 上传器。我需要一个 python 库来提取书籍信息。在我自己实现之前,我想知道是否有人知道已经制作的 python 库可以做到这一点。

【问题讨论】:

  • 我投票决定让这个问题保持开放,因为在提问的时候似乎没有库来实现所需的功能,我认为接受的答案包含有价值的代码。跨度>
  • 评论不是给你的,而是给投票结束问题的人。没有理由不接受答案,特别是因为它解决了您的问题。
  • 关闭并不意味着删除,答案是吸引链接仅答案,将来可能是垃圾邮件。

标签: python epub ibooks


【解决方案1】:

我在寻找类似的东西后来到这里,并受到博思韦尔先生的代码 sn-p 的启发,开始了我自己的项目。如果有人有兴趣...http://epubzilla.odeegan.com/

【讨论】:

  • 你的链接很有用
  • 拒绝投票导致网站无法加载。我猜是废弃的项目。
【解决方案2】:

查看epub module。这看起来是一个简单的选择。

【讨论】:

  • 包好像维护得不好
【解决方案3】:

.epub 文件是一个 zip 编码的文件,其中包含一个 META-INF 目录,其中包含一个名为 container.xml 的文件,该文件指向另一个通常名为 Content.opf 的文件,该文件索引构成该目录的所有其他文件电子书(基于http://www.jedisaber.com/eBooks/tutorial.asp 的摘要;http://www.idpf.org/2007/opf/opf2.0/download/ 的完整规范)

以下 Python 代码将从 .epub 文件中提取基本元信息并将其作为字典返回。

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 = tree.xpath('n:rootfiles/n:rootfile/@full-path',namespaces=ns)[0]

    # grab the metadata block from the contents metafile
    cf = zip.read(cfname)
    tree = etree.fromstring(cf)
    p = tree.xpath('/pkg:package/pkg:metadata',namespaces=ns)[0]

    # repackage the data
    res = {}
    for s in ['title','language','creator','date','identifier']:
        res[s] = p.xpath('dc:%s/text()'%(s),namespaces=ns)[0]

    return res

样本输出:

{
    'date': '2009-12-26T17:03:31',
    'identifier': '25f96ff0-7004-4bb0-b1f2-d511ca4b2756',
    'creator': 'John Grisham',
    'language': 'UND',
    'title': 'Ford County'
}

【讨论】:

  • 谢谢,这符合我的预期。
  • 两个链接都坏了。
  • 果然,epub 是不同扩展名的 zip 文件。 :)
  • 有没有办法获取书籍本身的内容?
【解决方案4】:

例如epub-tools 之类的东西?但这主要是关于写作 epub 格式(来自各种可能的来源),epubtools 也是如此(类似的拼写,不同的项目)。 阅读它,我会尝试配套项目threepress,这是一个用于在浏览器上显示 epub 书籍的 Django 应用程序——没有看过该代码,但我想这是为了展示这本书肯定首先必须能够阅读;-)。

【讨论】:

  • epub-tools 和 epubtools 似乎是 epub 生成器。
  • @xiamx,是的,正如我所说,“主要是关于写作”——那么,你尝试过threepress 代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多