Como rastrear usando o wget para baixar APENAS arquivos HTML (ignorar imagens, css, js)

14

Essencialmente, quero rastrear um site inteiro com o Wget, mas preciso que NUNCA baixe outros ativos (por exemplo, imagens, CSS, JS, etc.). Eu só quero os arquivos HTML.

As pesquisas no Google são completamente inúteis.

Aqui está um comando que eu tentei:

wget --limit-rate=200k --no-clobber --convert-links --random-wait -r -E -e robots=off -U "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36" -A html --domain=www.example.com http://www.example.com

Nosso site é híbrido com PHP e CMS. Assim, HTML "arquivos" poderia ser /path/to/page, /path/to/page/, /path/to/page.php, ou /path/to/page.html.

Inclusive incluí, -R js,cssmas ele ainda baixa os arquivos, ENTÃO os rejeita (desperdício inútil de largura de banda, CPU e carga do servidor!).

Nathan JB
fonte
2
qual o comando que você tentou até agora? Se a nomeação dos arquivos for consistente, você poderá usar o sinalizador -R. Como alternativa, você pode usar o sinalizador --ignore-tags e ignorar as tags script e img.
Ernie
Oposto: excluir a lista de arquivos específicos no wget
Ƭᴇcʜιᴇ007 31/01
Eu tentei usar --accept = html, mas ele baixa arquivos CSS ENTÃO os exclui. Quero impedir que eles baixem. Uma solicitação de cabeçalhos é boa, no entanto - por exemplo, noto Length: 558 [text/css]nos arquivos que não quero. Se eu pudesse interromper a solicitação se o cabeçalho não retornar text/html, eu ficaria feliz.
Nathan JB

Respostas:

13

O comentário de ernie sobre --ignore-tagsme conduz pelo caminho certo! Quando olhei para cima --ignore-tags, em man, notei --follow-tags.

Ambiente --follow-tags=ame permitiu saltar img, link, script, etc.

Provavelmente é muito limitado para algumas pessoas que procuram a mesma resposta, mas na verdade funciona bem no meu caso (tudo bem se eu perder algumas páginas).

Se alguém encontrar uma maneira de permitir a verificação de TODAS as tags, mas impedir a wgetrejeição de arquivos somente após o download (eles devem ser rejeitados com base no nome do arquivo ou no cabeçalho do tipo de conteúdo antes do download), aceitarei com prazer a resposta!

Nathan JB
fonte
5

que tal adicionar as opções:

--reject '*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso'
--ignore-tags=img,link,script 
--header="Accept: text/html"
Spir
fonte