tovotu

19. März 2012
Überlegungen zu springer_download.py
Sprache:Python

Update vom 08.12.2012: Die Überarbeitung der SpringerLink-Webseite habe ich zum Anlass genommen, auf der Basis der in diesem Artikel vorgeschlagenen Verbesserungen ein Remake der Software zu erstellen, dass ich in einem anderen Artikel vorstelle und zum Download anbiete.

In einem anderen Artikel [1] habe ich das Python-Skript springer_download.py von Milian Wolff [2] vorgestellt. Das eigentliche Problem, alle Kapitel eines Buchs von SpringerLink automatisiert zu beziehen und anschließend in einem einzelnen PDF-Dokument zusammenzufassen, ist programmiertechnisch einfach zu handhaben. Dementsprechend ist das Skript unter allen Betriebssystemen lauffähig, für die Python (ab Version 2.4) und die Tools convert (Teil von ImageMagick), iconv (oft in glibc-common) und pdftk verfügbar sind und weist damit eine für Python ziemlich bemerkenswerte Plattformunabhängigkeit auf.

Das Tool hat ein paar kleine Nachteile, die sich aber relativ leicht beheben ließen. Mit libxml2dom etwa ließen sich Kapitelüberschriften von der Webseite auslesen [3] und mit Ghostscript und pdfmark in ein PDF-Inhaltsverzeichnis verwandeln [4]. Außerdem wäre es eine Überlegung wert, die Abhängigkeit von iconv und pdftk durch Python-Module wie pyPdf [5] zu ersetzen und eine grafische Oberfläche mit PyQt oder PyGtk bereitzustellen.

Einige der vorgeschlagenen Änderungen würden weniger elegante Abhängigkeiten mit sich bringen und unter Umständen die Plattformunabhängigkeit völlig zunichte machen. Das ließe sich aber mit einer weitgehenden Modularisierung bzw. Objektorientierung umgehen. Ein eigentlich ziemlich dankbares Projekt, das sich gut als Einstieg in die objektorientierte, modularisierte und grafische Programmierung mit Python eignen würde.

  1. tovotu.de/blog/514-...SpringerLink-beziehen
  2. milianw.github.com/springer_download
  3. boddie.org.uk/python/HTML.html
  4. milan.kupcevic.net/ghostscript-ps-pdf
  5. pybrary.net/pyPdf

Kommentare

Neue Kommentare zu diesem Artikel bitte per Mail an kommentare-515(at)tovotu.de!