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

8

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 estes são ambos wikis. Então, ao fazer o download com, por exemplo:

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

Eu obtenho um lote de 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 e sem diffs, etc.

P.S .:

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: /

P.P.S:

Eu tenho 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
    
por Tie-fighter 29.06.2010 / 23:08

6 respostas

8

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

( --reject-type posix por padrão). Funciona apenas para versões recentes (> = 1.14) de wget , de acordo com outros comentários.

Cuidado, parece que você pode usar --reject-regex apenas uma vez por wget de chamada. Ou seja, você precisa usar | em um único regex se quiser selecionar vários regex:

wget --reject-regex 'expr1|expr2|…' http://example.com
    
por 25.01.2014 / 20:08
4

A documentação do wget diz:

Note, too, that query strings (strings at the end of a URL beginning with a question mark (‘?’) are not included as part of the filename for accept/reject rules, even though these will actually contribute to the name chosen for the local file. It is expected that a future version of Wget will provide an option to allow matching against query strings.

Parece que essa funcionalidade está na mesa há algum tempo e nada tem foi feito com ele.

Eu não o usei, mas o httrack parece ter um conjunto de recursos de filtragem mais robusto do que o wget e pode ser melhor adequado para o que você está procurando (leia sobre filtros aqui link ).

    
por 29.06.2010 / 23:44
3

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

Você precisa usar a nova opção --reject-regex=.... para manipular as strings de consulta.

Observe que não consegui encontrar o novo manual que inclui essas novas opções, portanto, você precisa usar o comando de ajuda wget --help > help.txt

    
por 05.01.2014 / 20:39
1

Pavuk deve ser capaz de fazer isso:

link

Exemplo da Mediawiki:

[...]

-skip_url_pattern ’oldid=, action=edit, action=history, diff=, limit=, [/=]User:, [/=]User_talk:, [^p]/Special:, =Special:[^R], .php/Special:[^LUA][^onl][^nul], MediaWiki:, Search:, Help:

[...]

    
por 09.05.2011 / 18:37
1

Parece que você está tentando evitar o download de páginas especiais do MediaWiki. Eu resolvi esse problema uma vez evitando a página index.php :

wget  -R '*index.php*'  -r ... <wiki link>

No entanto, o wiki usou as URLs como visto na Wikipedia ( http://<wiki>/en/Theme ) e não o padrão que vi em outros lugares ( http://<wiki>/index.php?title=Theme ). Como o link que você deu usa URLs no padrão da Wikipedia, acho que essa solução pode funcionar para você também.

    
por 30.05.2011 / 17:00
0

"- R rejlist --reject rejlist" Especifique listas separadas por vírgulas de sufixos ou padrões de nomes de arquivos para aceitar ou rejeitar (consulte Tipos de Arquivos). Se um dos caracteres curinga, "*", "?", "[" Ou "]" aparecer em um elemento de lista ou rejista, ele será tratado como um padrão, em vez de um sufixo.

Os padrões são provavelmente o que você quer. Não tenho certeza de quão sofisticados são os padrões, mas você pode tentar aceitar apenas determinados arquivos ou bloquear:

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

Aceite:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif -A [a-zA-Z.] http://www.boinc-wiki.info/

Edit: nvm à luz do outro post.

    
por 29.06.2010 / 23:43

Tags