2011-01-22 2 views
9

Je dois archiver les pages complètes, y compris les images liées, etc. sur mon serveur Linux. Vous cherchez la meilleure solution. Existe-t-il un moyen de sauvegarder tous les éléments, puis de les relier tous pour qu'ils fonctionnent dans le même répertoire?Quelle est la meilleure façon d'enregistrer une page Web complète sur un serveur Linux?

J'ai pensé utiliser curl, mais je ne suis pas sûr de la façon de faire tout cela. Aussi, aurai-je besoin de PHP-DOM?

Existe-t-il un moyen d'utiliser firefox sur le serveur et de copier les fichiers temporaires après que l'adresse a été chargée ou similaire?

Toutes les entrées sont les bienvenues.

Edit:

Il semble que wget est « non » va travailler les fichiers doivent être rendus. J'ai firefox installé sur le serveur, y a-t-il un moyen de charger l'url dans firefox puis de récupérer les fichiers temporaires et effacer les fichiers temporaires après?

+0

Tout le contenu est-il statique ou y a-t-il du contenu dynamique (PHP, JSP, etc.)? – thkala

+0

Cela fait partie d'une application Web client, donc il pourrait y avoir n'importe quoi. Il serait préférable d'utiliser javascript ou java ou similaire pour envoyer l'état actuel du navigateur au serveur, puis faire quoi d'autre est nécessaire. – Tomas

+1

Il existe d'autres alternatives dans [obtenir un navigateur de rendu html + javascript] (https://stackoverflow.com/q/18720218) –

Répondre

12

wget peut faire, par exemple:

wget -r http://example.com/ 

Ce refléteront l'ensemble du site example.com.

Quelques options intéressantes sont:

-Dexample.com: ne pas suivre les liens d'autres domaines
--html-extension: renomme pages avec type de contenu texte/html .html

Manuel: http://www.gnu.org/software/wget/manual/

+0

Guys/gals, wget obtient le site complet. Je veux lui donner une seule page et juste obtenir le contenu de cette page. Est-ce que j'ai râté quelque chose? – Tomas

+0

utilise '-l 1'; il limitera la mise en miroir à 1 niveau – arnaud576875

+1

'wget -m' qui est actuellement équivalent à' -r -N -l inf --no-remove-listing' – mb21

2
wget -r http://yoursite.com 

Devrait être suffisant et saisir des images/médias. Il y a beaucoup d'options que vous pouvez nourrir.

Remarque: Je crois que wget ou tout autre programme prend en charge le téléchargement d'images spécifiées par CSS - vous devrez peut-être le faire manuellement.

Voici peut-être quelques arguments utiles: http://www.linuxjournal.com/content/downloading-entire-web-site-wget

+0

'wget' télécharge n'importe quelle image soit en HTML ou en CSS lorsqu'elle est utilisée avec le commutateur' -p'. – SuB

5

Si tout le contenu de la page Web était statique, vous pouvez contourner ce problème avec quelque chose comme wget:

$ wget -r -l 10 -p http://my.web.page.com/ 

ou une variante de celui-ci.

Étant donné que vous avez également des pages dynamiques, vous ne pouvez pas archiver en général une telle page Web en utilisant wget ou tout autre client HTTP simple. Une archive correcte doit incorporer le contenu de la base de données principale et des scripts côté serveur. Cela signifie que la seule façon de procéder correctement consiste à copier les fichiers côté serveur de sauvegarde. Cela inclut au moins la racine du document du serveur HTTP et tous les fichiers de base de données.

EDIT:

En tant que travail autour, vous pouvez modifier votre page Web de sorte qu'un utilisateur convenablement privilégié peut télécharger tous les fichiers côté serveur, ainsi qu'un vidage en mode texte de la base de données de support (par exemple un vidage SQL). Vous devriez prendre soin de extrême pour éviter d'ouvrir des trous de sécurité à travers ce système d'archivage.

Si vous utilisez un fournisseur d'hébergement virtuel, la plupart d'entre eux fournissent une sorte d'interface Web qui permet de sauvegarder l'ensemble du site. Si vous utilisez un serveur réel, vous pouvez installer un grand nombre de solutions de sauvegarde, y compris quelques solutions Web pour les sites hébergés.

4

Utilisation commande suivante:

wget -E -k -p http://yoursite.com 

Utilisation -E pour ajuster les extensions. Utilisez -k pour convertir les liens pour charger la page à partir de votre espace de stockage. Utilisez -p pour télécharger tous les objets dans la page.

Veuillez noter que cette commande ne télécharge pas les autres pages ayant un lien hypertexte dans la page spécifiée. Cela signifie que cette commande télécharge uniquement les objets requis pour charger correctement la page spécifiée.

Questions connexes