Usando o Wget para rastrear recursivamente um site e baixar imagens

10

Como você instrui o wget a rastrear recursivamente um site e fazer download apenas de certos tipos de imagens?

Eu tentei usar isso para rastrear um site e baixar apenas imagens JPEG:

wget --no-parent --wait=10 --limit-rate=100K --recursive --accept=jpg,jpeg --no-directories http://somedomain/images/page1.html

No entanto, embora page1.html contenha centenas de links para subpáginas, que têm links diretos para imagens, o wget relata coisas como "Removendo subpage13.html, uma vez que deve ser rejeitado", e nunca faz download de imagens, pois nenhuma é diretamente ligado a partir da página inicial.

Estou assumindo que isso ocorre porque o my --accept está sendo usado para direcionar o rastreamento e filtrar o conteúdo para download, enquanto eu quero usá-lo apenas para direcionar o download do conteúdo. Como posso fazer o wget rastrear todos os links, mas só baixar arquivos com certas extensões como * .jpeg?

EDIT: Além disso, algumas páginas são dinâmicas e são geradas por meio de um script CGI (por exemplo, img.cgi? fo9s0f989wefw90e). Mesmo se eu adicionar cgi à minha lista de aceitações (por exemplo, --accept = jpg, jpeg, html, cgi), elas sempre serão rejeitadas. Existe uma maneira de contornar isso?

    
por Cerin 29.03.2011 / 17:23

4 respostas

3

Por que você não tenta usar o link wget -A jpg, jpeg -r ?

    
por 18.10.2011 / 22:10
1

Como você espera saber o conteúdo de subpage13.html (e então o jpg que ele está vinculado) se não for permitido baixá-lo. Eu sugiro que você permita o html, consiga o que você quer, então remova o que você não quer.

Eu não tenho certeza sobre por que o seu cgi está sendo rejeitado ... existe alguma saída de erro por wget? Talvez torne o wget detalhado ( -v ) e veja. Pode ser melhor como uma questão separada.

Dito isto, se você não se importa com largura de banda e baixar lotes, então remova o que você não quer depois, não importa.

Confira também --html-extension

Da página do manual:

-E

--html-extension

If a file of type application/xhtml+xml or text/html is downloaded and the URL does not end with the regexp .[Hh][Tt][Mm][Ll]?, this option will cause the suffix .html to be appended to the local filename. This is useful, for instance, when youâre mirroring a remote site that uses .asp pages, but you want the mirrored pages to be viewable on your stock Apache server. Another good use for this is when youâre downloading CGI-gener- ated materials. A URL like http://site.com/article.cgi?25 will be saved as article.cgi?25.html.

Note that filenames changed in this way will be re-downloaded every time you re-mirror a site, because Wget canât tell that the local X.html file corresponds to remote URL X (since it doesnât yet know that the URL produces output of type text/html or application/xhtml+xml. To prevent this re-downloading, you must use -k and -K so that the original version of the file will be saved as X.orig.

--restrict-file-names=unix também pode ser útil devido a essas URLs cgi ...

    
por 30.03.2011 / 17:37
0

Você também pode usar o MetaProducts Offline Explorer sem programar

    
por 14.01.2013 / 04:44
-1

Tente adicionar a opção --page-requisites

    
por 29.03.2011 / 17:39