Como fazer o download com o wget sem seguir os links com os parâmetros

11

Estou tentando baixar dois sites para inclusão em um CD:

http://boinc.berkeley.edu/trac/wiki
http://www.boinc-wiki.info

O problema que estou tendo é que esses dois são wikis. Então, ao baixar com, por exemplo:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif http://www.boinc-wiki.info/

Eu recebo muitos arquivos porque ele também segue links como ...? Action = edit ...? Action = diff & version = ...

Alguém sabe uma maneira de contornar isso?

Eu só quero as páginas atuais, sem imagens, sem diferenças etc.

PS:

wget -r -k -np -nv -l 1 -R jpg,jpeg,png,gif,tif,pdf,ppt http://boinc.berkeley.edu/trac/wiki/TitleIndex

Isso funcionou para berkeley, mas o boinc-wiki.info ainda está me causando problemas: /

PPS:

Recebi o que parece ser as páginas mais relevantes com:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info
Lutador de gravata
fonte
Não há necessidade de pós cruzamento entre superusuário e serverfault serverfault.com/questions/156045/...
Bryan
Onde eu deveria ter postado?
Tie-fighter
este é o lugar certo. Não é uma pergunta do servidor.
David Z
Ainda assim eu tenho as melhores respostas em serverfault;)
Tie-lutador

Respostas:

5

A nova versão do wget (v.1.14) resolve todos esses problemas.

Você precisa usar a nova opção --reject-regex=....para manipular seqüências de caracteres de consulta.

Observe que eu não consegui encontrar o novo manual que inclui essas novas opções, então você deve usar o comando help wget --help > help.txt

user3133076
fonte
4
wget --reject-regex '(.*)\?(.*)' http://example.com

( --reject-type posixpor padrão). Funciona apenas para versões recentes (> = 1.14) do wgetporém, de acordo com outros comentários.

Cuidado, parece que você pode usar --reject-regexapenas uma vez por wgetchamada. Ou seja, você precisa usar |em uma única regex se desejar selecionar em várias regex:

wget --reject-regex 'expr1|expr2|…' http://example.com
Skippy le Grand Gourou
fonte
Pode ser verdade sobre o requisito da versão. Eu tinha a v1.12 e a opção não era válida. Após a atualização para a v1.15, foi.
usar o seguinte comando
A alternância de regex usando o |símbolo ("pipe") não está funcionando para mim com o GNU Wget 1.16.
sampablokuper
0
wget -R "*?action=*"

Isso excluirá qualquer coisa que contenha ?action=em seu nome.

Daisetsu
fonte
3
"Observe também que as strings de consulta (strings no final de um URL que começam com um ponto de interrogação ('?')) Não são incluídas como parte do nome do arquivo para regras de aceitação / rejeição, mesmo que elas realmente contribuam para o nome escolhido para o arquivo local. Espera-se que uma versão futura do Wget forneça uma opção para permitir a correspondência com cadeias de consulta. "
Tie-fighter
Hmm, eu devo ter perdido isso. Parece que você não pode fazer isso com o wget, se ele nem sabe que são arquivos diferentes. Eu sugiro um programa diferente.
Daisetsu
-3

Eu diria que leeching um site público de wiki é uma prática ruim, porque coloca uma carga adicional nele.

Se um wiki é público e os proprietários do site não se importam em compartilhar o conteúdo, eles geralmente fornecem um dump para download (banco de dados ou o que for). Portanto, basta baixar o pacote de dados, configurar uma instância local do mesmo mecanismo wiki, importar os dados para ele e ter uma cópia local. Depois disso, se desejar, você pode fazer sanguessugas localmente.

vtest
fonte
há -w segundos. por exemplo, -w 5. gnu.org/software/wget/manual/html_node/…
barlop