Copia un sito Web tramite HTTP per scaricare immagini, HTML e CSS


22

Devo strappare un sito via HTTP. Devo scaricare le immagini, HTML, CSS e JavaScript e organizzarlo in un file system.

Qualcuno sa come fare questo?


2
Dovresti menzionare che non utilizzerai questo software per violazione del copyright. Altrimenti supponiamo che tu voglia rispecchiare il contenuto di qualcun altro in modo da poter guadagnare da esso.
belgariontheking

Una volta avevamo un cliente che voleva andarsene, ma prendevamo la versione HTML statica del loro sito, abbandonando il CMS. Ho usato HTTrack per generare il sito statico. Funziona bene su Windows e Ubuntu.
TRiG

4
@belgariontheking: interessante pensare che tu abbia il peggio. Usiamo anche WinHTTrack per scaricare una versione HTML statica del nostro sito Web dinamico.
Umber Ferrule

Risposte:


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

Questo funziona nella console.

questo prenderà un sito, attenderà 3 secondi tra le richieste, limiterà la velocità di download in modo che non uccida il sito e si maschera in un modo che lo fa sembrare solo un browser in modo che il sito non ti interrompa usando un meccanismo anti-sanguisuga.

Nota il -Aparametro che indica un elenco dei tipi di file che desideri scaricare.

Puoi anche usare un altro tag, -D domain1.com,domain2.comper indicare una serie di domini che vuoi scaricare se hanno un altro server o altro per l'hosting di diversi tipi di file. Non esiste un modo sicuro per automatizzarlo in tutti i casi, se non si ottengono i file.

wgetè comunemente preinstallato su Linux, ma può essere banalmente compilato per altri sistemi Unix o scaricato facilmente per Windows: GNUwin32 WGET

Usa questo per il bene e non per il male.


1
wget -erobots = off --no-parent --wait = 3 --limit-rate = 50K -r -p -U "Mozilla / 4.0 (compatibile; MSIE 7.0; Windows NT 5.1)" -k --directory-prefix "C: \ rip" --page-requisites -A htm, aspx, php, jsp, asp, zip, png, html, css, js, json, gif, jpeg, jpg, bmp domain.com
Chris S

Funzionerebbe su "Vanity URLs"? Sono preoccupato per i miei contenuti (OK, canzoni) scritti su un sito di social network e voglio eseguirne il backup a livello locale. Il sito è "www.example.com" ma c'è un vanity URL con il mio nome utente "avi.example.com". Non voglio scaricare l'intero sito, solo i miei contenuti!
Avi,

Su Linux, potresti voler installare wget dai sorgenti. La versione di Ubuntu, ad esempio, non analizza i CSS mentre lo fa wstream a monte.
RDT

16

Buona soluzione gratuita: HTTrack

HTTrack è un'utilità di browser offline gratuita (GPL, libre / free) e facile da usare.

Ti permette di scaricare un sito Web da Internet in una directory locale, costruendo ricorsivamente tutte le directory, ottenendo HTML, immagini e altri file dal server sul tuo computer. HTTrack organizza la relativa struttura di collegamento del sito originale. Basta aprire una pagina del sito Web "speculare" nel browser e puoi navigare il sito da un collegamento all'altro, come se lo stessi visualizzando online. HTTrack può anche aggiornare un sito con mirroring esistente e riprendere i download interrotti. HTTrack è completamente configurabile e ha un sistema di aiuto integrato.


7

Sui sistemi Linux, "wget" fa questo, praticamente.

È stato anche portato su diverse altre piattaforme, come menzionano molte altre risposte.



Dato che è Linux probabilmente creerei semplicemente una macchina virtuale Ubuntu, eseguirò wget e trasferirò i file sul mio computer host. Sembra che sarebbe più veloce del porting su Windows. :) (Concesso, il porting su Windows è probabilmente comunque un buon esercizio!)
JMD

Corro debian sulla mia macchina. Posso dire a wget di recuperare le directory secondarie / javascript / css / images associate assegnandole solo il dominio radice http?
Damon,

# Scarica l'intero contenuto di esempio.com wget -r -l 0 esempio.com

Sì ... o usa la porta nativa di Windows, oppure usa Cygwin ...
Tmdean,

2

Ovviamente WGet è stato menzionato alcune volte. La migliore interfaccia utente che ho trovato è

Ci sono altre interfacce utente per WGet in giro, alcune delle quali sono candidate per la peggiore domanda dell'interfaccia utente


1

Guarda l'estensione Scrapbook per Firefox. Fa un lavoro straordinario in questo e si integra anche con firebug e ti consente di eliminare elementi dal DOM prima di salvare se lo desideri.


1

Devi usare wget, che è disponibile per la maggior parte delle piattaforme. curl non richiederà documenti in modo ricorsivo, che è uno dei principali punti di forza di wget.

Linux: (solitamente incluso nella distribuzione) 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/

Si prega di assicurarsi che non si stia martellando il sito Web - impostare ritardi adeguati tra le richieste e assicurarsi che rientri nei termini di servizio del sito.

-Adamo


in realtà sono i nostri server a martellare. il sito viene generato dinamicamente tramite PHP e il CMS / DB è stato alterato. è una storia contorta, sono lo sviluppatore che è appena arrivato. ma stiamo costruendo tutto in Django ora, quindi non devi preoccuparti.
Damon,

1

In realtà, a seguito del mio commento nel post di GWLlosa, mi sono appena ricordato di aver installato GnuWin32 e sicuramente contiene una porta Windows di 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


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 : parametro indica a wget di includere tutti i file, comprese le immagini.
  • -e robots=off : ignora le regole dei siti robots.txt
  • -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" : stringa agente utente
  • --random-wait : evitare di essere nella lista nera
  • --limit-rate=20k : limita la velocità con cui scarica i file.
  • -b : continua wget dopo la disconnessione.

Questi sono i parametri che uso. Aggiungo anche l' opzione -c(o --continue) quando le cose vanno male e devo riavviare il processo.
kub1x


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.