Библиотека Python для извлечения информации "epub" [закрыто]
Я пытаюсь создать загрузчик epub для iBook в python. Мне нужен Python lib для извлечения информации о книге. Прежде чем реализовать это самостоятельно, мне интересно, знает ли кто-нибудь уже сделанный Python lib, который это делает.
4 ответов
An .файл 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 извлечет основную мета-информацию из an .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-tools, например? Но это в основном о писать epub
формат (из различных источников), как это epubtools (аналогичное написание, другой проект). Для чтение это, я бы попробовал проект companion threepress, приложение Django для показа книг epub в браузере - не смотрел на этот код, но я предполагаю, что для того, чтобы показать книгу, она должна, безусловно, сначала быть в состоянии читать он.)-;
Я оказался здесь после поиска чего-то подобного и был вдохновлен фрагментом кода г-на Босуэла, чтобы начать свой собственный проект. Если кому-то интересно ... http://epubzilla.odeegan.com/