Como baixar todos os arquivos (mas não HTML) de um site usando o wget?


162

Como usar wgete obter todos os arquivos do site?

Preciso de todos os arquivos, exceto os arquivos da página da Web, como HTML, PHP, ASP, etc.


Mesmo se você quiser baixar o php, não é possível usar o wget. Podemos obter apenas HTML bruto usando o wget. Eu acho que você sabe o motivo
Venkateshwaran Selvaraj

Nota: sempre verifique wget --spiderprimeiro e sempre adicione -w 1(ou mais -w 5) para não inundar o servidor da outra pessoa.
Isomorphismes

1
Como eu poderia baixar todos os arquivos pdf nesta página? pualib.com/collection/pua-titles-a.html

Stack Overflow é um site para perguntas sobre programação e desenvolvimento. Esta questão parece estar fora de tópico, porque não se trata de programação ou desenvolvimento. Consulte Quais tópicos posso perguntar aqui na Central de Ajuda. Talvez o Superusuário ou o Unix e Linux Stack Exchange sejam um lugar melhor para perguntar. Consulte também Onde postar perguntas sobre Dev Ops?
JWW

Respostas:


262

Para filtrar extensões de arquivo específicas:

wget -A pdf,jpg -m -p -E -k -K -np http://site/path/

Ou, se você preferir nomes de opções longos:

wget --accept pdf,jpg --mirror --page-requisites --adjust-extension --convert-links --backup-converted --no-parent http://site/path/

Isso espelhará o site, mas os arquivos sem jpgou pdfextensão serão removidos automaticamente.


17
Se você quiser apenas fazer o download de arquivos sem a arquitetura de diretórios inteiros, use a opção -nd .
Diabloneo 28/08/14

4
o que cada uma das bandeiras significa?
21414 Jürgen Paul

Eu acho que --accepté case-sensitive, então você teria que fazer--accept pdf,jpg,PDF,JPG
Flimm

8
não tenho certeza se isso é com uma nova versão do wgetmas você tem que especificar um --progresstipo, por exemplo--progress=dot
Jamis

@Limlim, você também pode usar a --ignore-caseflag para fazer distinção entre --acceptmaiúsculas e minúsculas.
Harsh

84

Isso baixou o site inteiro para mim:

wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/

20
+1 para -e robots=off! Isso finalmente resolveu o meu problema! :) Obrigado
NHDaly

12
A --random-waitopção é genial;)
poitroae

2
@izilotti O proprietário do site pode descobrir se você WGET os arquivos do site com esse método?
precisa saber é o seguinte

1
@whatIsperfect É definitivamente possível.
Jack

1
@JackNicholsonn Como o proprietário do site saberá? O agente usado foi o Mozilla, o que significa que todos os cabeçalhos serão acessados ​​como um navegador Mozilla, não seria possível detectar o wget como usado? Por favor, corrija se eu estiver errado. obrigado
KhoPhi

63
wget -m -p -E -k -K -np http://site/path/

A página de manual mostrará o que essas opções fazem.

wgetsó seguirá os links, se não houver um link para um arquivo da página de índice, wgetnão saberá sobre sua existência e, portanto, não fará o download. ie ajuda se todos os arquivos estiverem vinculados em páginas da web ou em índices de diretório.


Obrigado pela resposta :) Ele copia site inteiro e eu preciso apenas arquivos (ou seja, txt, pdf, imagem etc.) no website
Aniruddhsinh

25

Eu estava tentando baixar arquivos zip vinculados da página de temas do Omeka - tarefa bastante semelhante. Isso funcionou para mim:

wget -A zip -r -l 1 -nd http://omeka.org/add-ons/themes/
  • -A: aceita apenas arquivos zip
  • -r: recurso
  • -l 1: um nível de profundidade (ou seja, apenas arquivos diretamente vinculados a partir desta página)
  • -nd: não crie uma estrutura de diretórios, basta baixar todos os arquivos nesse diretório.

Todas as respostas com -k, -K, -Eetc opções provavelmente não têm realmente entendido a pergunta, como aqueles que para reescrever páginas HTML para fazer uma estrutura local, renomear .phparquivos e assim por diante. Não é relevante.

Para obter literalmente todos os arquivos, exceto .html etc:

wget -R html,htm,php,asp,jsp,js,py,css -r -l 1 -nd http://yoursite.com

2
-Afaz -A zip,ZIP
distinção entre

7

Você pode tentar:

wget --user-agent=Mozilla --content-disposition --mirror --convert-links -E -K -p http://example.com/

Além disso, você pode adicionar:

-A pdf,ps,djvu,tex,doc,docx,xls,xlsx,gz,ppt,mp4,avi,zip,rar

para aceitar extensões específicas ou para rejeitar apenas extensões específicas:

-R html,htm,asp,php

ou excluir as áreas específicas:

-X "search*,forum*"

Se os arquivos forem ignorados para robôs (por exemplo, mecanismos de pesquisa), você deverá adicionar também: -e robots=off


5

Tente isso. Sempre funciona para mim

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

5
wget -m -A * -pk -e robots=off www.mysite.com/

isso fará o download de todos os tipos de arquivos localmente e apontará para eles a partir do arquivo html e ignorará o arquivo de robôs


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.