Estoy tratando de crear un cargador de epub para iBook en python. Necesito una lib de Python para extraer información del libro. Antes de implementar esto por mí mismo, me pregunto si alguien sabe que una versión de python lib ya creada lo hace.Biblioteca de Python para extraer información de 'epub'
Respuesta
Un archivo .epub es un archivo zip-codificado que contiene un directorio META-INF, que contiene un archivo llamado container.xml, que apunta a otro archivo usualmente llamado Content.opf, que indexa todos los otros archivos que componen el e-book (resumen basado en http://www.jedisaber.com/eBooks/tutorial.asp; especificaciones completas 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 ejemplo:
{
'date': '2009-12-26T17:03:31',
'identifier': '25f96ff0-7004-4bb0-b1f2-d511ca4b2756',
'creator': 'John Grisham',
'language': 'UND',
'title': 'Ford County'
}
¿Algo como epub-tools, por ejemplo? Pero eso es principalmente sobre escribiendo el formatoepub
(de varias fuentes posibles), como es epubtools (ortografía similar, proyecto diferente). Para leyendo, probaría el proyecto complementario threepress, una aplicación de Django para mostrar libros de epub en un navegador. No he mirado ese código, pero imagino que para mostrar el libro seguramente debe ser primero capaz de leerlo ;-).
epub-tools y epubtools parecen ser generadores de epub. – xiamx
@xiamx, sí, "sobre todo acerca de la escritura" como dije, entonces, ¿has probado el código de tres pulsaciones? –
Mira la epub module. 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/
bastante útil que enlace – embert
- 1. Biblioteca ePub para java o android
- 2. ¿Extraer información de $?
- 3. ¿Qué biblioteca usar para extraer texto de imágenes (OCR)?
- 4. Uso de expresiones regulares para extraer información de una cadena
- 5. ¿Cómo empezar a extraer información?
- 6. Creación de EPUB en .Net
- 7. Extraer información de la fórmula condicional
- 8. Trabajar con openssl para extraer información de un certificado pkcs12
- 9. Biblioteca para leer el archivo ELF Información de depuración DWARF
- 10. ¿Cómo puedo usar la biblioteca HTMLParser de python para extraer datos de una etiqueta div específica?
- 11. Biblioteca para extraer palabras (voz) del flujo de audio?
- 12. Matlab - cuenca para extraer líneas - la información perdida
- 13. cómo hacer un lector de epub para Android y mostrar?
- 14. ¿Cómo convertir HTML a epub?
- 15. biblioteca de información de proceso/sistema portátil
- 16. Cómo extraer información de depuración de un bloqueo
- 17. Programación de libros en formato ePub
- 18. Python expresiones regulares para extraer la fecha
- 19. Biblioteca de API de Amazon para Python?
- 20. Lectura del formato ePub
- 21. Firma digital: código de muestra para verificación y para extraer información de certificación
- 22. Módulo de Python para extraer fechas probables de cadenas?
- 23. Biblioteca de imágenes para Python 3
- 24. Buena biblioteca de Python para AMQP
- 25. Biblioteca de MS Access para python
- 26. Biblioteca de red neuronal para Python?
- 27. Biblioteca de Python para Amazon MWS
- 28. Biblioteca de Python para generar archivos flash
- 29. Biblioteca de Twitter para App Engine Python?
- 30. python: biblioteca para árboles de sufijo generalizados
Voy a votar para dejar abierta esta pregunta, ya que al parecer, al momento de formular la pregunta, no había una biblioteca para implementar la funcionalidad requerida, y creo que la respuesta aceptada contiene un código valioso . –
El comentario no es para ti, sino para las personas que votan para cerrar la pregunta. No hay ninguna razón para no aceptar la respuesta, particularmente porque resolvió su problema. –
El cierre no significa eliminar, la respuesta es atraer solo respuestas de enlace y tal vez correo no deseado en el futuro. – bummi