Dieses Skript hilft Ihnen, eine Liste von Buch-URLs von der Projekt Gutenberg-Website zu extrahieren, unerwünschte URLs herauszufiltern und die entsprechenden EPUB-Dateien mithilfe des epub2go-Dienstes herunterzuladen.
Ein Freund von mir beschwerte sich darüber, dass Projekt Gutenberg die ePub-Dateien der Bücher, die sie in ihrem Laden digitalisiert hatten, hinter einer Paywall versteckte. Er wollte alle Bücher im ePub-Format erhalten, und ich beschloss, dies zu verwirklichen, da die Bücher bereits in HTML verfügbar sind. Nach einiger Recherche bin ich auf den Dienst epub2go gestoßen, der es einfacher macht, Bücher von HTML in ePub zu konvertieren, ohne dass lokale Abhängigkeiten und Berechnungen erforderlich sind.
Dieses Skript automatisiert den Prozess des Herunterladens von Büchern von Projekt Gutenberg, konvertiert sie mithilfe des epub2go-Dienstes in das ePub-Format und speichert die konvertierten Dateien auf Ihrem lokalen Computer*.
(*Das ist derzeit ziemlich hässlich, da sie einfach alle in das Arbeitsverzeichnis des Skripts verschoben werden.)
Scrape-Book-URLs von Projekt Gutenberg
Filtern Sie unerwünschte URLs heraus (die keine Bücher sind)
Lädt konvertierte ePub-Dateien über den Dienst epub2go herunter
Fügt Verzögerungen zwischen Anfragen hinzu, um eine Überlastung des Dienstes zu vermeiden
Befolgen Sie diese Schritte, um das Skript einzurichten und auszuführen:
Laden Sie den neuesten ChromeDriver für Selenium herunter, der Ihrer installierten Chrome/Chromium-Version entspricht. Platzieren Sie die Binärdatei an der gewünschten Stelle und aktualisieren Sie den Pfad im Code.
Laden Sie den neuesten Google Chrome- oder Chromium-Browser herunter und entpacken Sie ihn für die kopflose Ausführung von clientseitigem JavaScript.
Installieren Sie die erforderlichen Python-Abhängigkeiten mit pip:
pip install -r Anforderungen.txt
Konfigurierbare Verzögerung zwischen Downloads und Konvertierungen
Parallelisierung von Downloads zur Erhöhung der Download-Geschwindigkeit (mit einem vernünftigen Limit, um sicherzustellen, dass wir epub2go nicht überlasten)
Kratzen Sie im Voraus die vollständigen Autorennamen und Buchtitel aus, erstellen Sie dann eine Verzeichnisstruktur basierend auf books/author/book_title
und platzieren Sie die ePub-Dateien dort