سؤال

أحاول إنشاء تحميل EPUB إلى iBook في Python. أحتاج إلى Python lib لاستخراج معلومات الكتاب. قبل تنفيذ هذا بنفسي ، أتساءل عما إذا كان أي شخص يعرف بالفعل python lib يفعل ذلك.

هل كانت مفيدة؟

المحلول

ملف .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, ، فمثلا؟ لكن هذا في الغالب جاري الكتابة epub التنسيق (من مختلف المصادر المحتملة) ، كما هو epubtools (تهجئة مماثلة ، مشروع مختلف). إلى عن على قراءة هذا ، سأحاول مشروع الرفيق threepress, ، تطبيق Django لعرض كتب Epub على متصفح-لم ينظر إلى هذا الرمز ، لكنني أتخيل أنه من أجل إظهار الكتاب ، يجب أن يكون بالتأكيد قادرًا أولاً على قراءته ؛-).

تفحص ال وحدة EPUB. يبدو وكأنه خيار سهل.

لقد انتهيت من هنا بعد البحث عن شيء مشابه واستلهمه مقتطفات كود السيد بوثويل لبدء مشروعي الخاص. إذا كان أي شخص مهتمًا ... http://epubzilla.odeegan.com/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top