Como baixar todos os livros em inglês de Gutenberg?

23

Preciso fazer o download de todos os ebooks Gutenberg, em formato de texto sem formatação (não html) e apenas no idioma inglês.

Alguém tem sugestões de como baixá-los todos do servidor Gutenberg?

Eu preciso deles para fazer uma pesquisa linguística.

EugeneP
fonte

Respostas:

32

De acordo com as informações sobre o acesso do robô às nossas páginas :

O acesso do robô ao nosso site deve ser deixado como último recurso, quando tudo mais falhar. Lembre-se também de que o site do Project Gutenberg é protegido por direitos autorais.

No entanto, há esperança :

Melhores alternativas

  • Obtenha uma versão offline do site do Project Gutenberg.
  • Obtenha todos os arquivos do ebook de Project Gutenberg.
  • Obtenha os dados do catálogo do Project Gutenberg.

E:

[...] Você pode obter todos os nossos eBooks em arquivos compactados, apontando o seu robô em http://www.gutenberg.org/robot/harvest

[...] Descompactar os arquivos zip produzirá outros 70.000 arquivos.

Este é um exemplo de como obter todos os arquivos usando wget:

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

[...] Se você quiser apenas alguns tipos de arquivos, diga:

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

[...] Se você quiser apenas arquivos em um determinado idioma, diga:

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

Então, eu questionaria:

wget -w 2 -m http://www.gutenberg.org/robot/harvest?filetypes[]=txt&langs[]=en
Arjan
fonte
Existe uma maneira de dizer ao wget para limitar o número de arquivos baixados durante o rastreamento (por exemplo, os 100 primeiros arquivos de texto que encontrar)?
rohanbk
Além disso, quando temos um número de links em um arquivo de texto (uri absoluto, diga " gutenberg.org/files/1.zip , gutenberg.org/files/2.zip "), que parâmetro é usado para fornecer esse arquivo de texto como um número de links para download do WGET?
EugeneP:
@rohanbk, você pode ver o que será baixado navegando na própria URL, como gutenberg.org/robot/harvest?filetypes[.la=txt&langs[//= Isso mostra que é realmente paginado, mas o número de arquivos por página não é constante . (Talvez com base no tamanho?) Portanto, para NÃO recorrer, de acordo com o manual do wget , você pode tentar --level=0. Mas acho que é melhor você abortar e reiniciar: tente --level 9999 --no-clobber, o que ignorará os arquivos que você já possui (supondo que você ainda esteja na mesma pasta do disco).
Arjan
1
@EugeneP, veja --input-file no manual .
Arjan
@Arjan Existe uma maneira de especificar o deslocamento no início do download? Meu download foi interrompido por alguns motivos e agora o wget começou a verificar arquivos na primeira página. Eu tinha usado a -copção, mas ainda assim. Dei offset=xxxna URL para ser espelhado, mas ainda está baixando da primeira página.
user13107
7

Você pode fazer o download de toda a coleção de livros em inglês da Gutenberg e de outros idiomas em um único arquivo ZIM, que é altamente compactado e pode ser aberto com o Kiwix tanto na área de trabalho quanto no Android. Os livros em inglês são de 40 GB.

Nemo
fonte
nenhum cliente linux para Kiwix
aquagremlin
@aquagremlin Uh? kiwix.org/wiki/Software#GNU.2FLinux Está incluso em algumas distribuições.
Nemo
2
Desculpe. não dormi e não vi os 'outros sistemas' abaixo do botão grande.
aquagremlin
é este livro em formato txt?
AD
@ AD Não sei ao certo o que você quer dizer. É texto + imagens em HTML, empacotado no ZIM em vez de EPUB ou outro. Você pode sair de texto simples do que se você quiser, mas a minha resposta é principalmente para pessoas que preferem livros formatados etc.
Nemo
6

Enquanto a resposta selecionada estiver correta, ela poderá causar dois problemas:

  1. Você pode receber um erro 403 negando o acesso à paginação sob a presunção de que está baixando como um bot
  2. Existe o potencial de você ser enviado para um espelho externo, o que significa que o wgetcomando falhará nas verificações recursivas ao baixar os arquivos de um espelho externo.

A solução abaixo corrige estes problemas:

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"

Você pode alterar as seqüências de referência e agente do usuário para fornecer um pouco de aleatoriedade.

Corey Ballou
fonte
5

ftp://mirrors.pglaf.org/mirrors/gutenberg-iso tem algumas boas opções.

ftp://mirrors.pglaf.org/mirrors/gutenberg-iso/pgdvd042010.iso é um arquivo de 8 GB que deve ser suficiente para suas necessidades.

Há mais informações aqui:

https://www.gutenberg.org/wiki/Gutenberg:The_CD_and_DVD_Project#Downloading_Via_FTP , fornece todas as opções de download do arquivo, incluindo FTP e BitTorrent.

David Airapetyan
fonte
1
Eu recomendo o uso de um torrent como uma opção mais ética (na mesma página do terceiro link): gutenberg.org/wiki/… É mais ético porque causa menos pressão nos servidores do Project Gutenberg. Provavelmente também é mais rápido e mais eficaz. Além disso, eles recomendam sobre FTP. Se você usa Linux, Transmission é um bom cliente de torrent para esse propósito. Porém, isso só fornecerá livros que existiam no site em 2010, mas parece a melhor opção quando a resposta do shadowhorst não é funcional.
Shule
3

Outra opção é a ótima ferramenta em http://pgiso.pglaf.org/ .

  1. Digite um intervalo de identificação (por exemplo, 1-10000)
  2. Selecione os tipos de arquivo desejados
  3. Escolha os idiomas que você deseja incluir
  4. Aguarde a notificação
  5. Baixar
shadowhorst
fonte
2
Não está funcionando para mim, eu só posso ver o php bruto
Ernest
-4

Por que não usar todas as suas habilidades e conhecimentos de programação complicados e mostrados acima para criar um botão simples que vincula todas essas ações e diz "Baixar todos os livros atuais" - com uma guia de opção de idioma quando você clica nele.

Tenho certeza de que a maioria dos usuários que acessam o site é colecionadora de livros eletrônicos e o download manual de certos livros sobre tópicos que os interessam é bom para 1 ou 2 livros. Mas fazer uma coleção maior manualmente é uma chatice. No entanto, se eles precisam para pesquisa ou simplesmente desejam possuir uma enorme biblioteca digital de livros em seu próprio PC. A maioria das pessoas é desativada e se dispersa para fora do site quando percebe que precisa ser um Assistente de Computador para fazer isso. ainda mais visitantes no site. Assim, todo mundo está feliz.

Ivan Stojanovski
fonte