Wie lade ich alle englischen Bücher von Gutenberg herunter?

23

Ich muss alle Gutenberg-eBooks im Nur-Text-Format (nicht HTML) und nur in englischer Sprache herunterladen.

Hat jemand Vorschläge, wie man sie alle vom Gutenberg-Server herunterlädt?

Ich brauche sie, um eine sprachliche Untersuchung durchzuführen.

EugeneP
quelle

Antworten:

32

Laut Informationen über den Zugriff von Robotern auf unsere Seiten :

Der Roboterzugriff auf unsere Site sollte als letzte Ressource verbleiben, wenn alles andere fehlgeschlagen ist. Denken Sie auch daran, dass die Project Gutenberg-Website urheberrechtlich geschützt ist.

Es gibt jedoch Hoffnung :

Bessere Alternativen

  • Holen Sie sich eine Offline-Version der Project Gutenberg-Website.
  • Holen Sie sich alle Project Gutenberg eBook-Dateien.
  • Holen Sie sich die Project Gutenberg-Katalogdaten.

Und:

[...] Sie können alle unsere eBooks in gezippten Dateien erhalten, indem Sie Ihren Roboter auf http://www.gutenberg.org/robot/harvest richten

[...] Beim Entpacken der ZIP-Dateien werden weitere 70.000 Dateien erstellt.

Dies ist ein Beispiel, wie Sie alle Dateien erhalten, indem Sie Folgendes verwenden wget:

wget -w 2 -m http://www.gutenberg.org/robot/harvest

[...] Wenn Sie nur einige Dateitypen möchten, sagen Sie:

wget -w 2 -m http://www.gutenberg.org/robot/harvest?filetypes[]=txt

[...] Wenn Sie nur Dateien in einer bestimmten Sprache möchten, sagen Sie:

wget -w 2 -m http://www.gutenberg.org/robot/harvest?langs[]=de

Also, ich würde fragen:

wget -w 2 -m http://www.gutenberg.org/robot/harvest?filetypes[]=txt&langs[]=en
Arjan
quelle
Gibt es eine Möglichkeit, wget anzuweisen, die Anzahl der beim Crawlen heruntergeladenen Dateien zu begrenzen (z. B. die ersten 100 gefundenen Textdateien)?
Rohanbk
Wenn eine Textdatei eine Reihe von Links enthält (absolute uri, z. B. " gutenberg.org/files/1.zip , gutenberg.org/files/2.zip "), wird mit welchem ​​Parameter eine solche Textdatei bereitgestellt als eine Reihe von Download-Links zu WGET?
EugeneP
@rohanbk, Sie können sehen, was heruntergeladen wird, indem Sie die URL selbst durchsuchen, z. B. gutenberg.org/robot/harvest?filetypes[[=txt&langs[‹=de Dies zeigt, dass es tatsächlich paginiert ist, aber die Anzahl der Dateien pro Seite nicht konstant ist . (Vielleicht basierend auf der Größe?) Also, laut dem Handbuch von wget , könnten Sie es versuchen , um NICHT zu rekursiv zu sein --level=0. Aber ich denke, Sie sollten besser erlauben, abzubrechen und neu zu starten: try --level 9999 --no-clobber, wodurch Dateien, die Sie bereits haben, übersprungen werden (vorausgesetzt, Sie befinden sich immer noch im selben Ordner auf der Festplatte).
Arjan
1
@EugeneP, siehe --input-file im Handbuch .
Arjan
@Arjan Gibt es eine Möglichkeit, den Offset zu Beginn des Downloads anzugeben? Mein Download wurde aus bestimmten Gründen unterbrochen und jetzt hat wget begonnen, die Dateien von der ersten Seite aus zu überprüfen. Ich hatte -cOption verwendet, aber immer noch. Ich habe offset=xxxdie URL angegeben, die gespiegelt werden soll, aber sie wird immer noch von der ersten Seite heruntergeladen.
user13107
7

Sie können die gesamte Gutenberg-Sammlung englischer Bücher und anderer Sprachen in einer einzigen ZIM-Datei herunterladen , die stark komprimiert ist und dann mit Kiwix sowohl auf dem Desktop als auch auf Android geöffnet werden kann . Die englischen Bücher sind 40 GB.

Nemo
quelle
Kein Linux-Client für Kiwix
Aquagremlin
@aquagremlin Uh? kiwix.org/wiki/Software#GNU.2FLinux Es ist sogar in einigen Distributionen enthalten.
Nemo
2
Es tut uns leid. Kein Schlaf und die "anderen Systeme" unter dem großen Knopf waren nicht zu sehen.
Aquagremlin
ist das txt format buch
AD
@AD Ich bin mir nicht sicher, was du meinst. Es handelt sich um Text + Bilder in HTML, die nicht in EPUB oder anderen Formaten, sondern in ZIM verpackt sind. Wenn du willst, kannst du daraus einfachen Text machen, aber meine Antwort ist hauptsächlich für Leute, die formatierte Bücher usw. bevorzugen
Nemo
6

Die ausgewählte Antwort ist zwar korrekt, kann jedoch zwei Probleme verursachen:

  1. Möglicherweise erhalten Sie einen 403-Fehler, der den Zugriff auf die Paginierung unter der Annahme verweigert, dass Sie sie als Bot herunterladen
  2. Möglicherweise werden Sie an einen externen Spiegel gesendet, was bedeutet, dass der wgetBefehl beim Herunterladen der Dateien von einem externen Spiegel keine rekursiven Prüfungen durchführt.

Die folgende Lösung behebt diese Probleme:

wget -H -w 2 -m http://www.gutenberg.org/robot/harvest?filetypes[]=txt&langs[]=en \
--referer="http://www.google.com" \
--user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" \
--header="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" \
--header="Accept-Language: en-us,en;q=0.5" \
--header="Accept-Encoding: gzip,deflate" \
--header="Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" \
--header="Keep-Alive: 300"

Möglicherweise möchten Sie die Referrer- und User-Agent-Zeichenfolgen ändern, um eine gewisse Zufälligkeit zu erzielen.

Corey Ballou
quelle
5

ftp://mirrors.pglaf.org/mirrors/gutenberg-iso hat ein paar gute Möglichkeiten.

ftp://mirrors.pglaf.org/mirrors/gutenberg-iso/pgdvd042010.iso ist eine 8-GB-Datei, die für Ihre Anforderungen ausreichen sollte.

Weitere Informationen finden Sie hier:

https://www.gutenberg.org/wiki/Gutenberg:The_CD_and_DVD_Project#Downloading_Via_FTP bietet alle Optionen zum Herunterladen des Archivs, einschließlich FTP und BitTorrent.

David Airapetyan
quelle
1
Ich empfehle, einen Torrent als ethischere Option zu verwenden (auf derselben Seite wie dieser dritte Link): gutenberg.org/wiki/… Es ist ethischer, weil es die Server von Project Gutenberg weniger belastet. Es ist wahrscheinlich auch schneller und effektiver. Außerdem empfehlen sie es über FTP. Wenn Sie Linux verwenden, ist Transmission ein guter Torrent-Client für diesen Zweck. Auf diese Weise erhalten Sie nur Bücher, die 2010 auf der Website vorhanden waren. Dies scheint jedoch die beste Option zu sein, wenn die Antwort von shadowhorst nicht funktioniert.
Shule
3

Eine weitere Option ist das großartige Tool unter http://pgiso.pglaf.org/ .

  1. Geben Sie einen ID-Bereich ein (z. B. 1-10000)
  2. Wählen Sie die gewünschten Dateitypen
  3. Wählen Sie die Sprachen aus, die Sie einbeziehen möchten
  4. Warten Sie auf die Benachrichtigung
  5. Herunterladen
shadowhorst
quelle
2
Ich arbeite nicht für mich, ich kann nur das rohe PHP sehen
Ernest
-4

Warum nicht all Ihre überkomplizierten und oben gezeigten Programmierkenntnisse und Kenntnisse nutzen, um eine einfache Schaltfläche zu erstellen, die all diese Aktionen miteinander verknüpft und "Alle aktuellen Bücher herunterladen" mit einer Registerkarte mit Sprachoptionen sagt, wenn Sie darauf klicken.

Ich bin mir sicher, dass die meisten Benutzer der Website E-Book-Sammler sind und das manuelle Herunterladen bestimmter Bücher zu Themen, die sie interessieren, für 1 oder 2 Bücher in Ordnung ist. Eine größere Sammlung manuell zu erstellen, ist jedoch ein Kinderspiel. Dennoch, wenn sie es für Recherchen benötigen oder einfach eine riesige digitale Bibliothek mit Büchern an ihrem eigenen PC besitzen möchten. Die meisten Leute sind ausgeschaltet und entfernen sich von der Site, wenn sie feststellen, dass sie ein Computerassistent sein müssen, um dies zu tun. Eine Schaltfläche "Alle aktuellen Bücher herunterladen" würde der Site des Projekts und seinen Benutzern zugute kommen, und sie wird mit Sicherheit produzieren Noch mehr Besucher auf der Website. So ist jeder glücklich.

Ivan Stojanovski
quelle