Salve uma única página da web (com imagens de plano de fundo) com o Wget

63

Eu quero usar o Wget para salvar páginas da web únicas (não recursivamente, nem sites inteiros) como referência. Muito parecido com o "Web Page" do Firefox, completo.

Meu primeiro problema é: não consigo fazer com que o Wget salve imagens de plano de fundo especificadas no CSS. Mesmo se salvasse os arquivos de imagem de fundo, não acho que --convert-links converteria os URLs de imagem de fundo no arquivo CSS para apontar para as imagens de fundo salvas localmente. O Firefox tem o mesmo problema.

Meu segundo problema é: se houver imagens na página que eu quero salvar hospedadas em outro servidor (como anúncios), elas não serão incluídas. --span-hosts não parece resolver esse problema com a linha abaixo.

Estou usando: wget --no-parent --timestamping --convert-links --page-requisites --no-directories --no-host-directories -erobots=off http://domain.tld/webpage.html

    
por user14124 14.10.2009 / 01:23

4 respostas

97

Na página de manual do Wget :

Actually, to download a single page and all its requisites (even if they exist on separate websites), and make sure the lot displays properly locally, this author likes to use a few options in addition to ‘-p’:

wget -E -H -k -K -p http://www.example.com/

Também no caso de robots.txt não permitir que você adicione -e robots=off

    
por 30.04.2010 / 12:20
7

O comando wget oferece a opção --mirror , que faz o mesmo que:

$ wget -r -N -l inf --no-remove-listing

Você também pode lançar -x para criar uma hierarquia de diretório inteira para o site, incluindo o nome do host.

Você pode não ter encontrado isso, se não estiver usando a versão mais recente de wget .

    
por 14.10.2009 / 01:32
2

Parece que o wget e o Firefox não estão analisando o CSS para que os links incluam esses arquivos no download. Você pode contornar essas limitações criando o que você pode e fazendo o script da extração do link de qualquer CSS ou Javascript nos arquivos baixados para gerar uma lista dos arquivos que você perdeu. Em seguida, uma segunda execução de wget nessa lista de links pode capturar o que foi perdido (use o sinal -i para especificar um arquivo que indique as URLs).

Se você gosta do Perl, há um módulo CSS :: Parser no CPAN Isso pode dar a você um meio fácil de extrair links dessa maneira.

Observe que wget está apenas analisando determinadas marcações html ( href / src ) e css uris ( url() ) para determinar quais requisitos da página devem ser obtidos. Você pode tentar usar complementos do Firefox como o DOM Inspector ou o Firebug para descobrir se as imagens de terceiros que você não está recebendo estão sendo adicionadas através do Javascript - se for assim, você precisará recorrer a um script ou plugin do Firefox para obtê-los também.

    
por 14.10.2009 / 02:28
2

Eu fiz a Webtografia para um propósito similar: link

Ele usa o Wget e envia o site para um repositório na sua conta do GitHub.

Eu uso esses argumentos:

--user-agent=Webtography
--no-cookies
--timestamping
--recursive
--level=1
--convert-links
--no-parent
--page-requisites
--adjust-extension
--max-redirect=0
--exclude-directories=blog

link

    
por 24.03.2016 / 13:51