Pregunta

Tengo varias páginas web en varios sitios diferentes que quiero reflejar completamente. Esto significa que necesitaré imágenes, CSS, etc., y los enlaces deben convertirse. Esta funcionalidad sería similar a usar Firefox para " Guardar página como " y seleccionando " Página web, complete " ;. Me gustaría asignar un nombre a los archivos y directorios correspondientes como algo sensato (por ejemplo, myfavpage1.html, myfavpage1.dir).

No tengo acceso a los servidores y no son mis páginas. Aquí hay un enlace de muestra: ¡Haz clic en mí!

Un poco más de aclaración ... Tengo alrededor de 100 páginas que quiero reflejar (muchas de ellas de servidores lentos), cronometraré el trabajo en Solaris 10 y enviaré los resultados cada hora a un montaje de samba para personas para ver. Y, sí, obviamente he intentado wget con varias banderas diferentes pero no he obtenido los resultados que estoy buscando. Por lo tanto, apuntar a la página wget de GNU no es realmente útil. Permítanme comenzar con donde estoy con un ejemplo simple.

 wget --mirror -w 2 -p --html-extension --tries=3 -k -P stackperl.html "https://stackoverflow.com/tags/perl"

A partir de esto, debería ver la página https://stackoverflow.com/tags/perl en el archivo stackper.html , si tuviera las banderas correctas.

¿Fue útil?

Solución

Si solo está buscando ejecutar un comando y obtener una copia de un sitio web, use las herramientas que otros han sugerido, como wget , curl , o algunas de las herramientas GUI. Utilizo mi propia herramienta personal que llamo webreaper (ese no es el Windows < a href = "http://www.webreaper.net/" rel = "nofollow noreferrer"> WebReaper . Hay algunos programas de Perl que conozco, entre ellos webmirror y algunos otros que puede encontrar en CPAN .

Si desea hacer esto dentro de un programa Perl que está escribiendo (ya que tiene la etiqueta " perl " en su respuesta), hay muchas herramientas en CPAN que puede ayudarlo en cada paso:

Buena suerte, :)

Otros consejos

Para una versión de HTML de sus sitios, puede usar WinHTTrack, un programa gratuito de código abierto y GPL disponible. Bajará versiones pre-renderizadas de sus páginas, gráficos, documentos, archivos zip, películas, etc. Por supuesto, ya que esta es una copia reflejada, cualquier código de backend dinámico como las llamadas a bases de datos ya no será dinámico.

http://www.httrack.com/

Personalmente, la última vez que sentí la necesidad de hacer esto, escribí un script en Python que hizo una copia de la memoria caché de mi navegador, y luego visité manualmente todas las páginas que deseaba copiar. Una solución muy fea, pero tiene la buena ventaja de no activar ninguna, " no raspe mi página " alarmas Gracias a la barra de pestañas de enlaces de Opera , " manualmente " descargar decenas de miles de páginas no fue tan difícil como parece.

Me haré eco del " no está claro " comentario. ¿Estas páginas / sitios web que ha creado, y desea implementarlos en múltiples servidores? Si es así, use referencias relativas en su HTML, y debería estar bien. O bien, use a en su y ajústelo en cada sitio. Pero, la relatividad es realmente el camino a seguir.

O, ¿está diciendo que le gustaría descargar sitios web (como la página de inicio de Stack Overflow, perl.com, etc.) para tener copias locales en su computadora? Estaré de acuerdo con Daniel - usa wget.

Jim

Puede usar las herramientas wget gnu para capturar un sitio completo como este:

wget -r -p -np -k URL

o, si usa perl, pruebe estos módulos:

  • LWP::Simple

  • WWW::Mechanize

Si wget es complicado o si no tienes un linuxbox, siempre puedes usar WebZip

Parece que desea la funcionalidad de almacenamiento en caché que proporciona un buen servidor proxy.

¿Tal vez mirar en algo como SQUID? Bastante seguro de que puede hacerlo.

Sin embargo, esta es más una pregunta de tipo sysadmin que de programación.

En la mayoría de los sitios web modernos, el extremo frontal solo cuenta una pequeña parte de la historia. Independientemente de las herramientas para eliminar html, css y javascript, le faltará la funcionalidad principal que se encuentra en el servidor.

O tal vez estabas queriendo decir otra cosa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top