Rasgue um site via HTTP para baixar imagens, HTML e CSS

22

Eu preciso copiar um site via HTTP. Preciso fazer o download das imagens, HTML, CSS e JavaScript, além de organizá-lo em um sistema de arquivos.

Alguém sabe como fazer isso?

Damon
fonte
2
Você deve mencionar que não usará este software por violação de direitos autorais. Caso contrário, presumimos que você deseja espelhar o conteúdo de outra pessoa para ganhar dinheiro com isso.
belgariontheking
Certa vez, um cliente queria sair, mas pegou a versão HTML estática do site, abandonando o CMS. Eu usei o HTTrack para gerar o site estático. Funciona bem no Windows e no Ubuntu.
TRiG
4
@belgariontheking: Interessante você assume o pior. Também usamos o WinHTTrack para baixar uma versão HTML estática de nosso próprio site dinâmico.
Umber Ferrule

Respostas:

40
wget -erobots=off --no-parent --wait=3 --limit-rate=20K -r -p -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -A htm,html,css,js,json,gif,jpeg,jpg,bmp http://example.com

Isso é executado no console.

isso agarra um site, aguarda 3 segundos entre as solicitações, limita a velocidade de download para não matar o site e oculta-se de uma maneira que faz parecer apenas um navegador para que o site não o interrompa usando um mecanismo anti-sanguessuga.

Observe o -Aparâmetro que indica uma lista dos tipos de arquivo que você deseja baixar.

Você também pode usar outra tag, -D domain1.com,domain2.compara indicar uma série de domínios que deseja baixar se eles tiverem outro servidor ou o que for para hospedar diferentes tipos de arquivos. Não há maneira segura de automatizar isso para todos os casos, se você não obtiver os arquivos.

wgeté geralmente pré-instalado no Linux, mas pode ser compilado trivialmente para outros sistemas Unix ou baixado facilmente para Windows: GNUwin32 WGET

Use isso para o bem e não para o mal.

DesenvolvedoresDevelopersDevelopers
fonte
1
wget -erobots = off --no-parent --wait = 3 --limit-rate = 50K -r -p -U "Mozilla / 4.0 (compatível; MSIE 7.0; Windows NT 5.1)" -k - prefixo de diretório "C: \ rip" - requisitos de página -A htm, aspx, php, jsp, asp, zip, png, html, css, js, json, gif, jpeg, jpg, bmp domain.com
Chris S
Isso funcionaria em "URLs personalizados"? Estou preocupado com meu conteúdo (OK, músicas) escrito em um site de rede social e quero fazer o backup localmente. O site é "www.example.com", mas existe um URL personalizado com meu nome de usuário "avi.example.com". Não quero baixar o site inteiro, apenas o meu conteúdo!
067 Avi
No Linux, você pode querer instalar o wget a partir de fontes. A versão do Ubuntu, por exemplo, não analisa CSS, enquanto o wget upstream faz.
GDR
16

Solução boa e gratuita: HTTrack

O HTTrack é um utilitário de navegador offline gratuito (GPL, libre / free) e fácil de usar.

Ele permite que você baixe um site da Internet para um diretório local, criando recursivamente todos os diretórios, obtendo HTML, imagens e outros arquivos do servidor para o seu computador. O HTTrack organiza a estrutura de links relativa do site original. Basta abrir uma página do site "espelhado" no seu navegador e você pode navegar no site de link para link, como se estivesse visualizando on-line. O HTTrack também pode atualizar um site espelhado existente e retomar downloads interrompidos. O HTTrack é totalmente configurável e possui um sistema de ajuda integrado.

slhck
fonte
7

Nos sistemas Linux, o 'wget' faz isso, basicamente.

Também foi portado para várias outras plataformas, como mencionam várias das outras respostas.

GWLlosa
fonte
Como é Linux, eu provavelmente criaria uma VM do Ubuntu, executaria o wget e transferiria os arquivos de volta para o meu computador host. Parece que isso seria mais rápido do que migrar para o Windows. :) (Concedido, portar para o Windows é provavelmente um bom exercício de qualquer maneira!)
JMD
Eu corro o debian na minha máquina. Posso dizer ao wget para recuperar os subdiretórios / javascript / css / images associados, fornecendo apenas o domínio raiz http?
Damon
# Faça o download de todo o conteúdo de example.com wget -r -l 0 example.com
Sim ... ou usar a porta nativa do Windows, ou usar Cygwin ...
Tmdean
2

Obviamente, o WGet foi mencionado algumas vezes. A melhor interface do usuário que encontrei é

Existem algumas outras interfaces de usuário para o WGet around, algumas das quais são candidatas à pior pergunta da interface do usuário

Chris S
fonte
1

Veja a extensão do Scrapbook do firefox. Ele faz um trabalho incrível nisso e também se integra ao firebug e permite excluir elementos do DOM antes de salvar, se desejar.

GBa
fonte
1

Você precisa usar o wget - que está disponível para a maioria das plataformas. o curl não solicitará documentos recursivamente, que é um dos principais pontos fortes do wget.

Linux: (geralmente incluído na distribuição) http://www.gnu.org/software/wget/
Windows: http://gnuwin32.sourceforge.net/packages/wget.htm
Mac: http: //www.geekology. co.za/blog/2009/02/macports-compile-and-install-open-source-software-on-mac-os-x/

POR FAVOR, verifique se você não está atacando o site - configure atrasos adequados entre solicitações e verifique se ele está dentro dos termos de serviço do site.

-Adão

Adam Davis
fonte
na verdade, são nossos servidores que estaríamos martelando. o site é gerado dinamicamente via PHP e o CMS / DB foi meio que mutilado. é uma história complicada, eu sou o desenvolvedor que acabou de chegar aqui. mas estamos construindo tudo no django agora, então você não precisa se preocupar.
Damon
1

Na verdade, acompanhando meu comentário no post do GWLlosa, lembrei-me de ter o GnuWin32 instalado e, com certeza, ele contém uma porta Windows do wget.

http://sourceforge.net/projects/gnuwin32/

GnuWin32 provides Win32-versions of GNU tools,
or tools with a similar open source licence.
The ports are native ports, that is they rely
only on libraries provided with any 32-bits
MS-Windows operating system, such as
MS-Windows 95 / 98 / 2000 / NT / XP
JMD
fonte
1

Eu usei isso há alguns anos e funcionou bem. Apenas Windows. Costumava ser adware, mas não mais, aparentemente:

http://www.webreaper.net/

Odilon Refazer
fonte
1

wget --random-wait -r -p -e robots=off -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" --limit-rate=20k -b http://www.example.com

  • -p : parâmetro diz ao wget para incluir todos os arquivos, incluindo imagens.
  • -e robots=off : ignorar regras de robots.txt dos sites
  • -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" : sequência do agente do usuário
  • --random-wait : evite ficar na lista negra
  • --limit-rate=20k : limita a taxa na qual ele baixa arquivos.
  • -b : continua o wget após o logout.
davidcondrey
fonte
Estes são os parâmetros que eu uso. Também adiciono -c(ou --continue) a opção quando as coisas dão errado e tenho que reiniciar o processo.
kub1x
0

Eu acho que o grabber de sites IDM é a melhor solução, também há o Teleport pro

Marwan Aouida
fonte