Parece que isso não é possível no wget
Estou tentando espelhar um site usando o wget, mas não quero baixar muitos arquivos, por isso estou usando a opção --reject
do wget para não salvar todos os arquivos. No entanto, o wget ainda baixará todos os arquivos e, em seguida, removerá o arquivo posteriormente se ele corresponder à minha opção de rejeição.
Existe alguma maneira de dizer ao wget para não seguir certos links se eles corresponderem a algum caractere curinga? Se o wget não puder fazer isso, existe algum outro comando comum do Linux que possa fazer isso?
Você também pode tentar o HTTrack , que tem uma lógica de inclusão / exclusão mais flexível e intuitiva. Algo assim ...
httrack "https://example.com" -O ExampleMirrorDirectory \
"-*" \
"+https://example.com/images/*" \
"-*.swf"
As regras serão aplicadas em ordem e substituirão as regras anteriores ...
Na seção --reject do 'man wget':
"Note que se qualquer um dos caracteres curinga, *,?, [ou], aparecer em um elemento de acclist ou rejlist, será tratado como um padrão, em vez de um sufixo."
Se você está fazendo isso, você pode querer dar exemplos dos padrões que você está usando e o que você acha que deve combinar, e isso não acontece. Você diz que eles estão combinando, mas tem certeza?
Além disso, certifique-se de colocar essa lista entre aspas, para que o shell não expanda esses curingas antes de passar o (s) argumento (s) para wget.
Mesmo que o seu sistema não tenha a versão 1.12, leia a seção Tipos de Arquivos do manual aqui . De acordo com o log de alterações, o mantenedor adicionou algumas advertências:
* NEWS: Added documentation change re: --no-parents, and various
caveats on accept/reject lists behavior. Rearranged some items in
order of priority.
Você pode restringir o nível de recursão com a opção -l NUMBER
, se isso ajudar (não seguir um determinado padrão de expressão regular).
Um nível de "2" faz o download index.html, seus subsites / images / etc e os links no subsite.
como você usa o wget? tente usá-lo desta maneira:
wget -r --reject=gif,jpg,swf http://norc.aut.ac.ir/
este comando irá ignorar arquivos gif e jpg e swf.
Uma solução alternativa seria executar o wget por meio de um servidor proxy. Defina seu proxy para não permitir certos padrões. Isso bloquearia o wget de sempre baixá-los em primeiro lugar.
O wget irá baixar e remover um arquivo que corresponda ao padrão -R. Ele pode combinar padrões também, não apenas extensões ou partes de nomes de arquivos. No entanto, isso não impede que você baixe primeiro e exclua mais tarde.
O httrack tem alguns recursos interessantes, mas, na minha experiência, a maneira como ele salva um "arquivo" pode ser um pouco peculiar
por exemplo. se o httrack se deparar com index.asp? Tipo = BASIC & PAGEID = 2234234
ele pode salvá-lo, mas é necessário avisá-lo para preservar as partes da consulta
por exemplo. % h% p /% n% [TIPO: @TYPE = ::]% [PAGEID: PAGEID = ::].% t
o @ é um espaço reservado para um ponto de interrogação, você pode renomear os arquivos mais tarde, ou talvez escapar de um ponto de interrogação em vez disso?
O problema é que o.% t adicionará um '.html' ao final do seu URI que originalmente não tinha '.html'
E se você tirá-lo, as imagens que o httrack downloads não terão extensão de arquivo.
Melhor usar wget IMHO
Tags wget linux mirror mirror-site