Как скачать все книги на английском от Гутенберга?


23

Мне нужно скачать все электронные книги Гутенберга в текстовом формате (не html) и только на английском языке.

У кого-нибудь есть предложения, как скачать их все с сервера Гутенберга?

Мне нужно, чтобы они провели лингвистическое исследование.

Ответы:


32

Согласно информации о доступе робота к нашим страницам :

Доступ роботов к нашему сайту должен быть оставлен как последний ресурс, когда все остальное не удалось. Кроме того, помните, что веб-сайт Project Gutenberg защищен авторским правом.

Однако есть надежда :

Лучшие альтернативы

  • Получить автономную версию веб-сайта Project Gutenberg.
  • Получить все файлы книги Project Gutenberg.
  • Получить данные каталога проекта Гутенберга.

А также:

[...] Вы можете получить все наши электронные книги в заархивированных файлах, указав своего робота на http://www.gutenberg.org/robot/harvest

[...] Распаковка zip-файлов даст еще 70000 файлов.

Это пример того, как получить все файлы, используя wget:

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

[...] Если вам нужны только некоторые типы файлов, скажите:

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

[...] Если вам нужны только файлы на данном языке, скажите:

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

Итак, я бы успокоился:

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

Есть ли способ указать wget ограничить количество файлов, которые он загружает во время сканирования (например, первые 100 текстовых файлов, с которыми он сталкивается)?
rohanbk

Кроме того, когда у нас есть несколько ссылок в текстовом файле (абсолютный uri, скажем " gutenberg.org/files/1.zip , gutenberg.org/files/2.zip "), какой параметр используется для предоставления такого текстового файла как количество ссылок для скачивания на WGET?
EugeneP

@rohanbk, вы можете увидеть, что будет загружено, просмотрев сам URL, например, gutenberg.org/robot/harvest?filetypes[]=txt&langs[]=en. Это показывает, что на самом деле это разбито на страницы, но количество файлов на странице не является постоянным. , (Может быть, в зависимости от размера?) Итак, чтобы НЕ повторять, согласно руководству wget , вы можете попробовать --level=0. Но я думаю, вам лучше разрешить прерывание и перезапуск: try --level 9999 --no-clobber, который пропустит файлы, которые у вас уже есть (при условии, что вы все еще находитесь в той же папке на диске).
Арджан

1
@EugeneP, см. --input-file В руководстве .
Арджан

@Arjan Есть ли способ указать смещение в начале загрузки? Моя загрузка была прервана по некоторым причинам, и теперь wget начал проверять файлы с первой страницы. Я использовал -cвариант, но все же. Я дал offset=xxxURL для зеркального отображения, но он все еще загружается с первой страницы.
user13107

7

Вы можете загрузить всю коллекцию английских книг и других языков Гутенберга в одном файле ZIM, который сильно сжат и может затем открываться с помощью Kiwix как на настольном компьютере, так и на Android. Книги на английском языке 40 ГБ.


нет linux-клиента для kiwix
aquagremlin

@ Аквагремлин А? kiwix.org/wiki/Software#GNU.2FLinux Он даже упакован в некоторые дистрибутивы.
Немо,

2
извиняюсь. не спал и не видел «другие системы» под большой кнопкой.
Aquagremlin

это книга в формате TXT?
AD

@ Я не уверен, что ты имеешь в виду. Это текст + изображения в HTML, упакованные в ZIM, а не в EPUB или другие. Вы можете получить простой текст из него, если хотите, но мой ответ в основном для людей, которые предпочитают форматированные книги и т. Д.
Nemo

6

Хотя выбранный ответ правильный, он потенциально может вызвать две проблемы:

  1. Вы можете получить ошибку 403, запрещающую доступ к нумерации страниц при условии, что вы загружаете его как бот
  2. Существует вероятность того, что вы будете отправлены на внешнее зеркало, что означает, что wgetкоманда не сможет выполнить рекурсивные проверки при загрузке файлов с внешнего зеркала.

Приведенное ниже решение устраняет эти проблемы:

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"

Возможно, вы захотите изменить строки referer и user-agent, чтобы обеспечить немного случайности.


5

У ftp://mirrors.pglaf.org/mirrors/gutenberg-iso есть несколько хороших вариантов.

ftp://mirrors.pglaf.org/mirrors/gutenberg-iso/pgdvd042010.iso - это файл объемом 8 ГБ, которого должно быть достаточно для ваших нужд.

Здесь больше информации:

https://www.gutenberg.org/wiki/Gutenberg:The_CD_and_DVD_Project#Downloading_Via_FTP , он предоставляет все варианты загрузки архива, включая FTP и BitTorrent.


1
Я рекомендую использовать торрент в качестве более этичного варианта (на той же странице, что и третья ссылка): gutenberg.org/wiki/… Это более этично, потому что это снижает нагрузку на серверы Project Gutenberg. Возможно, это быстрее и эффективнее. Плюс, они рекомендуют это по ftp. Если вы используете Linux, Transmission будет хорошим торрент-клиентом для этой цели. Однако это даст вам только книги, которые существовали на сайте в 2010 году, но кажется лучшим вариантом, когда ответ shadowhorst не работает.
Шуле

3

Другой вариант - отличный инструмент на http://pgiso.pglaf.org/ .

  1. Введите диапазон идентификаторов (например, 1-10000)
  2. Выберите нужные типы файлов
  3. Выберите языки, которые вы хотите включить
  4. Ждать уведомления
  5. Скачать

2
Не работает для меня, я могу видеть только сырой php
Эрнест

-4

Почему бы не использовать все свои чрезмерно сложные и показанные выше навыки и знания в области программирования, чтобы создать простую кнопку, которая связывает все эти действия с надписью «Загрузить все текущие книги» - с вкладкой опций языка, когда вы нажимаете на нее.

Я уверен, что большинство пользователей, которые приходят на сайт, являются коллекционерами электронных книг, и ручная загрузка определенных книг по интересующим их темам вполне подходит для 1 или 2 книг. Но сделать большую коллекцию вручную - непросто. Тем не менее, если они нуждаются в этом для исследований или просто хотели бы иметь огромную цифровую библиотеку книг на своем собственном ПК. Большинство людей отключаются и уходят с сайта, когда понимают, что для этого им нужен мастер компьютера. Так что кнопка «Скачать все текущие книги» принесет пользу сайту и проекту, а также пользователям еще больше посетителей сайта. Так что все счастливы.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.