libreria - lista de modulos de python
Biblioteca de Python para extraer informaciĆ³n ''epub'' (4)
¿Algo así como epub-tools , por ejemplo? Pero se trata principalmente de escribir en formato epub
(de varias fuentes posibles), al igual que epubtools (ortografía similar, proyecto diferente). Para leerlo , probé el proyecto complementario threepress , una aplicación de Django para mostrar libros de epub en un navegador. No he mirado ese código, pero me imagino que para mostrar el libro seguramente primero debe ser capaz de léelo ;-).
Estoy tratando de crear un cargador de epub para iBook en python. Necesito una libra de python para extraer información del libro. Antes de implementar esto por mi cuenta, me pregunto si alguien sabe una libra de python que ya lo hizo.
Echa un vistazo al módulo epub . Parece una opción fácil.
Terminé aquí después de buscar algo similar y me inspiré en el fragmento de código del Sr. Bothwell para comenzar mi propio proyecto. Si alguien está interesado ... http://epubzilla.odeegan.com/
Un archivo .epub es un archivo codificado en zip que contiene un directorio META-INF, que contiene un archivo llamado container.xml, que apunta a otro archivo llamado Content.opf, que indexa todos los demás archivos que conforman el libro electrónico. (resumen basado en http://www.jedisaber.com/eBooks/tutorial.asp ; especificación completa en http://www.idpf.org/2007/opf/opf2.0/download/ )
El siguiente código de Python extraerá la metainformación básica de un archivo .epub y la devolverá como un dict.
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
Salida de muestra:
{
''date'': ''2009-12-26T17:03:31'',
''identifier'': ''25f96ff0-7004-4bb0-b1f2-d511ca4b2756'',
''creator'': ''John Grisham'',
''language'': ''UND'',
''title'': ''Ford County''
}