Wget: baixando arquivos seletivamente e recursivamente?

4

Pergunta sobre wget , subpasta e index.html.

Digamos que eu esteja dentro da pasta "travels /" e isso está em "website.com": "website.com/travels /".

A pasta "travels /" contém muitos arquivos e outras (sub) pastas: "website.com/travels/list.doc", "website.com/travels/cover.png", "website.com/travels / [1990] America / "," website.com/travels/[1994] Japan / ", e assim por diante ...

Como posso baixar apenas todos os ".mov" e ".jpg" que residem apenas em todas as subpastas? Não quero escolher arquivos de "viagens /" (por exemplo, não "website.com/travels/list.doc")

Eu encontrei um comando wget (no Unix & Linux Exchange, não me lembro de qual foi a discussão) capaz de fazer o download de subpastas apenas do seu "index.html", não de outros conteúdos. Por que baixar apenas arquivos de índice?

    
por T. Caio 21.09.2018 / 15:11

1 resposta

6

Este comando faz o download apenas de imagens e filmes de um determinado site:

wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png,mov "http://www.somedomain.com"

De acordo com o wget man :

-nd prevents the creation of a directory hierarchy (i.e. no directories).

-r enables recursive retrieval. See Recursive Download for more information.

-P sets the directory prefix where all files and directories are saved to.

-A sets a whitelist for retrieving only certain file types. Strings and patterns are accepted, and both can be used in a comma separated list (as seen above). See Types of Files for more information.

Se você quiser fazer download de subpastas, use o sinalizador --no-parent , algo semelhante a este comando:

wget -r -l1 --no-parent -P /save/location -A jpeg,jpg,bmp,gif,png,mov "http://www.somedomain.com"

-r: recursive retrieving
-l1: sets the maximum recursion depth to be 1
--no-parent: does not ascend to the parent; only downloads from the specified subdirectory and downwards hierarchy

Com relação à página da web index.html. Ele será excluído assim que o sinalizador -A for incluído no comando wget , porque esse sinalizador forçará wget a fazer o download de um tipo específico de arquivos, o que significa que html não está incluído na lista de arquivos aceitos. baixado (ou seja, sinalizador A ), então ele não será baixado e wget enviará no terminal a seguinte mensagem:

Removing /save/location/default.htm since it should be rejected.

wget pode fazer o download de um tipo específico de arquivos, por exemplo (jpg, jpeg, png, mov, avi, mpeg, .... etc) quando esses arquivos existem no link URL fornecido para wget , por exemplo:

Digamos que gostaríamos de baixar os arquivos .zip e .chd deste site

Neste link existem pastas e arquivos .zip (vá até o final). Agora, digamos que gostaríamos de executar este comando:

wget -r --no-parent -P /save/location -A chd,zip "https://archive.org/download/MAME0.139_MAME2010_Reference_Set_ROMs_CHDs_Samples/roms/"

Este comando irá baixar arquivos .zip e, ao mesmo tempo, criará pastas vazias para os arquivos .chd.

Para fazer o download dos arquivos .chd, precisamos extrair os nomes das pastas vazias e, em seguida, converter esses nomes de pastas em URLs reais. Em seguida, coloque todos os URLs de interesse em um arquivo de texto file.txt , finalmente, alimente este arquivo de texto para wget , da seguinte maneira:

wget -r --no-parent -P /save/location -A chd,zip -i file.txt

O comando anterior encontrará todos os arquivos chd.

    
por 21.09.2018 / 15:39