View Single Post
Old 07-22-2009, 06:42 PM   #1
netseeker
sleepless reader
netseeker ought to be getting tired of karma fortunes by now.netseeker ought to be getting tired of karma fortunes by now.netseeker ought to be getting tired of karma fortunes by now.netseeker ought to be getting tired of karma fortunes by now.netseeker ought to be getting tired of karma fortunes by now.netseeker ought to be getting tired of karma fortunes by now.netseeker ought to be getting tired of karma fortunes by now.netseeker ought to be getting tired of karma fortunes by now.netseeker ought to be getting tired of karma fortunes by now.netseeker ought to be getting tired of karma fortunes by now.netseeker ought to be getting tired of karma fortunes by now.
 
netseeker's Avatar
 
Posts: 4,763
Karma: 615547
Join Date: Jan 2008
Location: Germany, near Stuttgart
Device: Sony PRS-505, PB 360° & 302, nook wi-fi, Kindle 3
Cextra - automatisiert eBook-taugliches XHTML von Zeno.org erstellen

Worum gehts?

Zeno wird von einigen von uns genutzt um gemeinfreie Texte in eBooks zu überführen. Zeno hostet eine Unmenge an digitalisierten Werken und ist wahrscheinlich neben Gutenberg DE die umfangreichste Sammlung an gemeinfreien Werken im HTML-Format.

Leider kann man das HTML von Zeno jedoch nicht einfach so weiterverarbeiten, da die Werke schön verschachtelt in Abschnitte strukturiert sind. Man muss sich also immer mehr oder weniger mühselig alles zusammenkopieren, eine Menge Ersetzungen vornehmen und die eigenen CSS-Stile einbringen um eine einigermaßen verwertbare Quelle zu erhalten.

Das ging mir langsam auf den Keks und ich habe die Sache mal relativ weitgehend automatisiert.

Im Anhang an diesem Post befindet sich ein Java-Programm inkl. Quellcode, welches mit einem Einstiegslink für ein Werk bei Zeno, bspw. http://www.zeno.org/Literatur/M/Vern...i+Jahre+Ferien gefüttert wird und dann aus allen Abschnitten des Werkes eine gut strukturierte XHTML-Vorlage inkl. Bildern mit externem CSS ohne Zeno-Stile erzeugt. Also prinzipiell handelt es sich bei dem Programm einfach um eine Mischung aus Spider- und Transformationsprogramm.

Benutzung:

Der Aufruf erfolgt aus der Kommandozeile (nein, nix Klickibunti ) und sieht grundsätzlich wie folgt aus:
Code:
java -jar cextra.jar
	--author -a value : Author
	[--debug -d] : Enable debugging output
	[--help -h] : display help
	--profile -f /(zeno|gb_de|default)/ : Extraction profile to be used.
	--publisher -p value : Publisher
	--subTitle -s value : Subtitle
	--target -o value : Target output directory
	--title -t value : Title
	--url -u value : URL of the source webpagee
Also bspw. für Zeno:
Code:
java -jar cextra.jar -a "Jules Verne" -t "Zwei Jahre Ferien" -p "A. Hartleben, Wien Pest Leipzig" -u http://www.zeno.org/Literatur/M/Verne,+Jules/Romane/Zwei+Jahre+Ferien -o tmp
und für GB_DE:
Code:
java -jar cextra.jar -f gb_de -a "Edgar Allan Poe" -t "Die denkwürdigen Erlebnisse des Artur Gordon Pym" -u http://gutenberg.spiegel.de/?id=5&xid=4204&kapitel=1 -o tmp
Eine Übersicht der möglichen Optionen erhält man via:
Code:
java -jar cextra.jar -h
Es wird Java 6 benötigt.

Wichtig ist, dass man immer die Startseite des Werks bei Zeno benutzt. Dazu geht man in das Inhaltsverzeichnis bei Zeno, sucht sich ein Werk heraus, klickt den Eintrag im Inhaltsverzeichnis an und kopiert die Adresse der damit aufgerufenen Seite. Die Adresse benutzt man dann als Eingabe für den kleinen Java-Spider.

Als Resultat werden im angegeben Ausgabeverzeichnis u.a. zwei Dateien namens ebook.xhtml sowie ebook.css erzeugt. ebook.xhtml kann man dann direkt an Calibre verfüttern. Wurden beim Aufruf des Programms die Metadaten über Autor und/oder Titel und/oder Herausgeber angegeben, sollte Calibre diese Angaben korrekt beim Import übernehmen. Leider funktioniert dies bis auf den Titel nicht oder zumindest nicht immer. Das scheint allerdings ein Fehler/fehlendes Feature beim HTML-Import in Calibre zu sein.

Cextra im MobileRead Dev Hub

Cextra ist inzwischen auch im Mobileread Dev Hub verfügbar: https://dev.mobileread.com/trac/cextra/. Dort stehen u.a.
  • Download von Releases und Sourcen
  • SVN Sourcecode Repository
  • Ticketsystem
  • WIKI
zur Verfügung. Der Sourcecode kann via SVN aus dem Repository https://dev.mobileread.com/svn/cextra/ ausgecheckt werden.

Ausblick:

Ich habe vor, das nach einer Fehlerbereinigungsphase noch auf andere große deutschsprachige Quellen zu erweitern und auch ein Standardprofil zu hinterlegen, welches für allgemeine Webseiten genutzt werden kann.

Um so weit zu kommen, benötige ich allerdings dringend ein paar Testrückmeldungen: Fehler, Ungereimtheiten, Verbesserungsvorschläge.

Download:

Edit 27.09.2009: Version 0.2
  • Unterstützung für mehrstufig aufbereitete Werke wie Anna Karenina oder Krieg und Frieden
  • CSS 1+2 kompatibler Stil für Fußnoten
  • Übernahme von Text bzw. Überschriften und Bildern auf untergeordneten Navigationsseiten

Edit 27.09.2009: Re-Upload - evtl. war das Zip-File nicht korrekt

Edit 03.12.2009: Version 0.3
  • Fehlerbehebung für Encoding-Probleme (falsche Abbildung von Sonderzeichen und Umlauten, wenn das Quell-HTML nicht 100% ok ist)

Edit 04.12.2009: Version 0.3.1/0.3.2
  • Fehlerbehebung für Encoding-Probleme, falls die verwendete Konsole nicht per Default UTF-8 verwendet.
  • Was wäre eine Fehlerbehebung ohne dabei einen neuen Fehler einzubauen? 0.3.2 behebt einen neuen Fehler beim Speichern der finalen "ebook.xhtml".

Edit 14.12.2009: Version 0.3.4
  • Fix für einfache Zeno-Texte ohne tiefere Navigationsstruktur.
  • Fix bei der Erstetzung spezifischer CSS-Klassen und -Stile, falls sich diese über mehrere Zeilen erstrecken
  • Untersützung für Stile mit Laufweitenregulierung bei Zeno
  • Seit 0.3.3 Unterstützung von Gutenberg_DE

Last edited by netseeker; 12-13-2009 at 06:54 PM. Reason: Update auf 0.3.4
netseeker is offline   Reply With Quote