Як завантажити всі англійські книги з Гутенберга?


23

Мені потрібно завантажити всі книги Гутенберга у простому текстовому форматі (не html) та лише англійською мовою.

У когось є пропозиції, як завантажити їх із сервера Гутенберг?

Мені вони потрібні, щоб зробити лінгвістичне дослідження.

Відповіді:


32

Відповідно до інформації про доступ роботів до наших сторінок :

Доступ роботів до нашого сайту повинен залишатися останнім ресурсом, коли все інше не вдалося. Також пам’ятайте, що веб-сайт Project Gutenberg захищений авторським правом.

Однак є надія :

Кращі альтернативи

  • Отримайте офлайн-версію веб-сайту Project Gutenberg.
  • Отримайте всі файли електронних книг Project Gutenberg.
  • Отримайте дані каталогу Project Gutenberg.

І:

[...] Ви можете отримати всі наші електронні книги в заархівованих файлах, вказавши свого робота за адресою http://www.gutenberg.org/robot/harvest

[...] Якщо розпакувати zip-файли, ви отримаєте ще 70 000 файлів.

Це приклад того, як отримати всі файли за допомогою 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

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

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

1
@EugeneP, див. --input-file У посібнику .
Ар'ян

@Arjan Чи є спосіб вказати зміщення на початку завантаження? Моє завантаження було перервано через деякі причини, і тепер wget почав перевірку файлів з першої сторінки. Я використовував -cваріант, але все ж. Я вказав offset=xxxу дзеркальній URL-адресі, але все-таки це завантаження з першої сторінки.
користувач13107

7

Ви можете завантажити всю колекцію англійських книг та інших мов Гутенберга в одному файлі ZIM, який сильно стискається і потім може бути відкритий за допомогою Kiwix як на робочому столі, так і на Android. Англійські книги - 40 Гб.


немає клієнта Linux для kiwix
aquagremlin

@aquagremlin А? kiwix.org/wiki/Software#GNU.2FLinux Він навіть упакований у деяких дистрибутивах.
Немо

2
вибачте. немає сну і не бачив "інших систем" під великою кнопкою.
аквагремлін

це книга формату txt?
AD

@AD Я не впевнений, що ти маєш на увазі. Це текст + зображення в HTML, упаковані в ZIM, а не в EPUB чи інше. Ви можете отримати звичайний текст з нього, якщо хочете, але моя відповідь здебільшого стосується людей, які віддають перевагу форматованим книгам тощо
Немо

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"

Ви можете змінити рядки реферера та користувача-агента, щоб забезпечити трохи випадковості.


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 не є функціональним.
Shule

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.