web-dev-qa-db-fra.com

Programme en ligne de commande pour créer des captures d'écran de site Web (sous Linux)

Qu'est-ce qu'un bon outil en ligne de commande pour créer des captures d'écran de sites Web sous Linux? J'ai besoin de générer automatiquement des captures d'écran de sites Web sans interaction humaine. Le seul outil que j'ai trouvé était khtml2png , mais je me demande s'il y en a d'autres qui ne sont pas basés sur khtml (c'est-à-dire qui ont un bon support JavaScript, ...).

62
ujh

Un peu plus de détails pourraient être utiles ...

Démarrez un Firefox (ou un autre navigateur) dans une session X, soit sur votre console, soit en utilisant un serveur vnc. Vous pouvez utiliser le --height et --width options pour définir la taille de la fenêtre en plein écran. Une autre commande firefox peut être utilisée pour définir l'URL affichée dans la première fenêtre firefox. Vous pouvez maintenant saisir l'image de l'écran avec l'une des commandes, telles que la commande "import" du package Imagemagick, ou en utilisant gimp, ou fbgrab, ou xv.

#!/bin/sh

# start a server with a specific DISPLAY
vncserver :11 -geometry 1024x768

# start firefox in this vnc session
firefox --display :11

# read URLs from a data file in a loop
count=1
while read url
do
    # send URL to the firefox session
    firefox --display :11 $url

    # take a picture after waiting a bit for the load to finish
    sleep 5
    import -window root image$count.jpg

    count=`expr $count + 1`
done < url_list.txt

# clean up when done
vncserver -kill :11
56
Shannon Nelson

Essayez Nice small tool CutyCapt , qui ne dépend que de Qt et QtWebkit. ;)

37
m7n7

Jetez un oeil à PhantomJS , qui semble être un moteur Webkit gratuit pouvant être lu qui fonctionne sous Linux, OSX et Windows. Je ne l'ai pas utilisé depuis que nous utilisons actuellement Browshot (solution commerciale), mais lorsque tous nos crédits seront épuisés, nous aurons sérieusement un butin (car il est gratuit et peut fonctionner sur nos serveurs)

8
MaxiWheat

scrot est un outil en ligne de commande pour prendre des captures d'écran. Voir page de manuel et ceci tutoriel .

Vous voudrez peut-être également examiner les scripts du navigateur. Il existe des modules complémentaires Firefox qui prennent des captures d'écran telles que screengrab (qui peut capturer la page entière si vous le souhaitez, pas seulement le bit visible) et vous pouvez ensuite scripter le navigateur avec greasemonkey pour prendre les captures d'écran.

5
Hamish Downer

Voir Webkit2png .

Je pense que c'est ce que j'ai utilisé dans le passé.

Edit Je découvre que je n'ai pas utilisé ce qui précède, mais trouvé cette page avec des critiques de nombreux programmes et techniques différents.

3
Luke H

Je sais que ce n'est pas un outil de ligne de commande, mais vous pouvez facilement écrire quelque chose à utiliser http://browsershots.org/ Pas très utile pour les applications non hébergées sur des adresses IP externes.

Un excellent outil néanmoins.

2
Paul Whelan

Je ne connais rien de personnalisé, je suis sûr qu'il pourrait y avoir quelque chose à faire avec le moteur gecko pour le rendre dans un fichier png au lieu de l'écran ...

Ou, vous pouvez allumer Firefox en mode plein écran dans une instance de serveur VNC dédiée et utiliser une capture d'écran pour prendre la capture d'écran. Plein écran = chrome minimal, instance de serveur VNC = pas d'interface utilisateur visible + vous pouvez choisir votre résolution.

Utilisez xinit avec Xvnc comme serveur X pour ce faire - vous devrez lire toutes les pages de manuel.

Les inconvénients sont que la capture d'écran est toujours de la même taille, ne redimensionne pas selon la page Web ...

1
Jim T

http://khtml2png.sourceforge.net/

Le fichier deb

travaillé sur mon Ubuntu après avoir installé libkonq4 ... mais vous devrez peut-être couvrir d'autres dépendances.

Je pense que le support javascript peut être mieux maintenant!

Stephan

1
Stephan Wehner

Pas pour la ligne de commande, mais au moins pour une utilisation en mode batch pour un plus grand ensemble d'URL, vous pouvez utiliser firefox avec son addon fireshot (version sous licence?).

  1. Ouvrez des onglets pour toutes les URL de votre ensemble (par exemple, "ouvrez des onglets pour tous les signets de ce dossier ...").
  2. Puis dans fireshot lancez "Capturer tous les onglets"
  3. Dans la fenêtre d'édition, appelez ensuite "sélectionner tous les plans -> enregistrer tous les plans"

Après avoir défini les propriétés de capture d'écran (taille, format de fichier, etc.) avant de terminer avec un joli ensemble de fichiers de prise de vue.

Steffen

1
SLN

Il y a la commande import , mais vous aurez besoin de X, et d'un petit script bash qui ouvre la fenêtre du navigateur, puis prenez la capture d'écran et fermez le navigateur .

Vous pouvez trouver plus d'informations ici , ou simplement taper import --help dans un shell;)

1
Andrea Ambu