Estou tentando espelhar um site usando o wget, mas não quero baixar muitos arquivos, por isso estou usando a --reject
opção do wget para não salvar todos os arquivos. No entanto, o wget ainda fará o download de todos os arquivos e o removerá depois, se 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 curinga do shell? Se o wget não pode fazer isso, existe algum outro comando linux comum que pode fazer isso?
linux
wget
mirror
mirror-site
Rory
fonte
fonte
Respostas:
Você também pode tentar o HTTrack, que tem, na IMO, lógica de inclusão / exclusão mais flexível e intuitiva. Algo assim...
As regras serão aplicadas em ordem e substituirão as regras anteriores ...
fonte
Parece que isso não é possível no wget
fonte
Sob a seção --reject do 'man wget':
"Observe que se algum dos caracteres curinga, *,?, [Ou] aparecer em um elemento de acclist ou rejlist, será tratado como um padrão, e não como um sufixo".
Se você estiver fazendo isso, pode dar exemplos dos padrões que está usando e o que acha que deve corresponder, e isso não corresponde. Você diz que eles estão combinando, mas você tem certeza?
Além disso, certifique-se de colocar esta lista entre aspas, para que o shell não expanda esses curingas antes de passar o (s) argumento (s) para o wget.
Mesmo se o seu sistema não possuir 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:
fonte
Você pode restringir o nível de recursão com a
-l NUMBER
opção, se isso ajudar (não seguindo um determinado padrão de expressão regular).Um nível "2" baixa index.html, seus subsites / imagens / etc e os links no subsite.
fonte
como você usa o wget? tente usá-lo desta maneira:
esse comando ignorará os arquivos gif, jpg e swf.
fonte
Uma solução alternativa seria executar o wget através de um servidor proxy. Defina seu proxy para não permitir certos padrões. Isso impediria o wget de baixá-los em primeiro lugar.
O wget fará o download e removerá um arquivo que corresponda ao padrão -R. também pode corresponder a padrões, não apenas extensões ou partes de nomes de arquivos. No entanto, não impede o wget de baixar primeiro e excluir depois.
O httrack possui 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 encontrar o index.asp? Type = BASIC & PAGEID = 2234234,
ele poderá salvá-lo, mas você deve dizer para preservar o arquivo partes da consulta,
por exemplo,% h% p /% n% [TYPE: @TYPE = ::]% [PAGEID: PAGEID = ::].% t
@ é um espaço reservado para um ponto de interrogação, você pode renomear os arquivos posteriormente, ou talvez escapar de um ponto de interrogação? O problema é que o.% t adicionará um '.html' ao final do seu URI que originalmente não tinha um '.html'. E se você o remover, as imagens que o httrack baixar não terão uma extensão de arquivo.
Melhor usar o wget IMHO
fonte