En los años 90 estaba usando Teleport Pro .
En estos días, ¿cuál sería la forma correcta de guardar una copia completa de un sitio web?
(incluidos archivos de CDN/fuentes/mapas fuente/medios)
Una opción sería escribir una aplicación Node.js simple usando módulos npm como request
o cheerio
, pero no quiero reinventar la rueda.
(por lo tanto preguntando)
Estoy principalmente en Mac, puedo usar Windows si el software lo vale.
Puedes usar GNU wget :
brew install wget
)Para crear una copia fuera de línea del sitio web (también conocido como espejo), use
wget --mirror --page-requisites --convert-links http://stackexchange.com
--mirror
: esta opción activa las opciones adecuadas para la duplicación. Esta opción activa la recursión y la marca de tiempo, establece una profundidad de recursión infinita y mantiene las listas de directorios FTP. Actualmente es equivalente a-r -N -l inf --no-remove-listing.
--page-requisites
: Esta opción hace que Wget descargue todos los archivos necesarios para mostrar correctamente una página HTML determinada. Esto incluye cosas tales como imágenes en línea, sonidos y hojas de estilo referenciadas.--convert-links
: Una vez completada la descarga, convierta los enlaces del documento para que sean adecuados para la visualización local. Esto afecta no solo a los hipervínculos visibles, sino a cualquier parte del documento que vincule a contenido externo, como imágenes incrustadas, enlaces a hojas de estilo, hipervínculos a contenido que no sea HTML, etc.Puede usar HTTrack Website Copier :
+*.css
, ¡esto a veces hace que la aplicación intente descargar todo Internet! Argh. Debe especificar reglas complejas de inclusión/exclusión para evitar esto. Ojalá no hicieran esto tan doloroso. 😒...¿cuál sería la forma correcta de guardar una copia completa de un sitio web?
La respuesta corta es que esto generalmente no es posible (en el sentido de "completo") excepto para sitios HTML estáticos.
Los sitios "responsivos" modernos de hoy en día se basan en JS que actualiza dinámicamente el DOM con AJAX y, a menos que esté preparado para ejecutar ese JS y volver a renderizar el DOM, no obtendrá el sitio completo.
Para ver lo que quiero decir, considere lo que significaría "guardar una copia completa" de, por ejemplo, maps.google.com.
offline
copia. La instantánea actual sería suficiente.
franck dernoncourt
Marte Robertson
franck dernoncourt