#1 Le 14/12/2010, à 15:33
- merlinx
Créer un JPG d'une page WEB en ligne de commande
Bonjour,
Je cherche à créer script qui me créera automatiquement une image JPG à partir de l'adresse d'un site WEB.
En gros mon script commence comme ça :
#!/bin/sh
site="www.google.fr"
......
Et je me retrouve avec un fichier site.jpg qui est l'image ci-dessous
J'ai bien essayer avec des modules comme html2pdf et autre, mais soit ça ne fonctionne pas, soit c'est super long le résultat est navrant : image tronqué ...
Avez-vous une idée ?
Dernière modification par merlinx (Le 14/12/2010, à 15:36)
Hors ligne
#2 Le 14/12/2010, à 16:01
- Totor
Re : Créer un JPG d'une page WEB en ligne de commande
tu peux te tourner vers l'outil import d'imagemagick.
Dernière modification par Totor (Le 14/12/2010, à 16:03)
-- Lucid Lynx --
Hors ligne
#3 Le 14/12/2010, à 16:05
- merlinx
Re : Créer un JPG d'une page WEB en ligne de commande
tu peux te tourner vers l'outil import d'imagemagick.
J'y ai pensé, mais deux problèmes :
1- Il faut ouvrir Firefox (ou autre) pour l'afficher et faire de l'import. Alors que je voudrais que tout se fasse en arrière plan sans perturber l'utilisateur
2- pour les pages WEB avec assenceur, cela devient compliquer pour capturer et recoller les morceaux.
Hors ligne
#4 Le 14/12/2010, à 17:43
- Totor
Re : Créer un JPG d'une page WEB en ligne de commande
Il te faudra récupérer le source html via curl ou wget avant mais à priori, mozilla2ps le fait très bien.
(pas testé)
-- Lucid Lynx --
Hors ligne
#5 Le 17/12/2010, à 22:22
- bluc
Re : Créer un JPG d'une page WEB en ligne de commande
avec Chrome il a plusieurs extensions qui font ça en deux clics
Clevo : Ubuntu 23.10 ❖ Xubuntu 22.10 ❖ Kubuntu 23.10
avec partition data commune Une fraction de seconde Multiboot
Hors ligne
#6 Le 17/12/2010, à 22:34
- ehmicky
Re : Créer un JPG d'une page WEB en ligne de commande
Sur Firefox aussi (et c'est libre).
Ca te permet en plus d'enregistrer ou .jpg ou .png, d'inclure la partie visible de la page web (si scrollbar) ou toute la page web, ou de sélectionner une zone précise de la page.
Mais de toute façon la question originale demande de pouvoir faire ça via un script, donc sans GUI.
Dernière modification par ehmicky (Le 17/12/2010, à 22:35)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#7 Le 17/12/2010, à 23:02
- bluc
Re : Créer un JPG d'une page WEB en ligne de commande
ha ! oui pourquoi pas
pourquoi faire simple quand on peux faire compliqué !...
Dernière modification par bluc (Le 17/12/2010, à 23:15)
Clevo : Ubuntu 23.10 ❖ Xubuntu 22.10 ❖ Kubuntu 23.10
avec partition data commune Une fraction de seconde Multiboot
Hors ligne
#8 Le 17/12/2010, à 23:17
- ehmicky
Re : Créer un JPG d'une page WEB en ligne de commande
merlinx a sûrement ses raisons, comme l'intégration dans un programme, la plus grande flexbilité, etc.
A moins qu'il ne veuille à la base que la fonctionnalité, auquel cas il lui faudrait un addon, que ce soit sur le navigateur de son choix.
Dernière modification par ehmicky (Le 17/12/2010, à 23:21)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#9 Le 17/12/2010, à 23:20
- bluc
Re : Créer un JPG d'une page WEB en ligne de commande
ok ...
Clevo : Ubuntu 23.10 ❖ Xubuntu 22.10 ❖ Kubuntu 23.10
avec partition data commune Une fraction de seconde Multiboot
Hors ligne
#10 Le 18/12/2010, à 11:20
- merlinx
Re : Créer un JPG d'une page WEB en ligne de commande
Je sais que firefox peut faire tout ceci en 2 clic, mais effectivement je DOIT pouvoir faire ça en batch sans perturber l'utilisateur.
Donc impossible d'ouvrir firefox et d'y lancer des commandes même en automatique puisque à ce moment là l'utilisateur sera perturbé.
Le mieux que j'ai trouvé pour l'instant c'est un wget suivi d'un html2ps et ensuite un convert fichier.ps en fichier.jpg.
Mais html2ps ne garde pas la mise en forme des site, et je meretrouve avec des mise en page pourries ou alors des image qui manque ...
Rien que sur google, le motg GOOGLE n'existe plus et la mise en page est nulle ...
J'ai pas trouvé les options qui vont bien pour avoir vraiment l'image de ce que l'on voit dans le navigateur
Hors ligne
#11 Le 18/12/2010, à 11:49
- Totor
Re : Créer un JPG d'une page WEB en ligne de commande
Bonjour,
Voici une solution qui fonctionne plus ou moins bien en fonction des pages :
pré-requis :
sudo apt-get install imagemagick html2ps wget
Script :
#!/bin/bash
[[ "$1" ]] || {
echo "Merci de fournir une URL." >&2
exit 1
}
[[ "$2" ]] || {
echo "Merci de fournir le nom du fichier destination." >&2
exit 1
}
HTML="$0_$$.html"
wget -qk -O "${HTML}" "$1" && convert "${HTML}" -append "$2" 2>/dev/null && echo "Le fichier $2 a été généré."
[ -f "${HTML}" ] && rm "${HTML}"
Par contre, cette méthode insère des marges au fichier résultat.
Pour passer outre, il faut ajouter ceci au fichier ~/.html2psrc
@page{
margin-lef: 0cm;
margin-right: 0cm;
margin-top: 0cm;
margin-bottom: 0cm;
}
note : j'ai tenté les formules suivantes :
convert <(wget -qk -O - "$1") -append "$2" 2>/dev/null
wget -qk -O - "$1"|convert @- -append "$2" 2>/dev/null
mais de la sorte "convert" n'arrive pas toujours à déterminer le type du format en entrée.
Dernière modification par Totor (Le 19/12/2010, à 10:41)
-- Lucid Lynx --
Hors ligne
#12 Le 18/12/2010, à 14:36
- Totor
Re : Créer un JPG d'une page WEB en ligne de commande
bon, j'ai trouvé ceci. Les résultats sont nettement plus acceptables qu'avec html2ps.
Un inconvénient : ça ouvre une fenêtre temporaire.
-- Lucid Lynx --
Hors ligne
#13 Le 18/12/2010, à 15:32
- Totor
Re : Créer un JPG d'une page WEB en ligne de commande
Re,
une autre alternative :
# pré-requis
sudo apt-get install wkhtmltopdf
# test
convert <(wkhtmltopdf -q -L 0 -R 0 -T 0 -B 0 http://www.google.fr -) show:
convert <(wkhtmltopdf -q -L 0 -R 0 -T 0 -B 0 http://www.imagemagick.org/Usage/files/ -) show:
show: est à remplacer par ce que tu veux (ex google.png / imagemagick.jpg)
j'ai trouvé 2 inconvénients à cette méthode :
- il y a des sauts de page du fait de la conversion en pdf. C'est d'ailleurs dans la doc :
[...]
Page Breaking
The current page breaking algorithm of WebKit leaves much to be desired. Basically webkit will render everything into one long page, and the cut it up into pages. This
means that if you have two columns of text where one is vertically shifted by half a line. Then webkit will cut a line into to pieces display the top half on one page.
And the bottom half on another page. It will also break image in two and so on. If you are using the patched version of QT you can use the CSS page-break-inside prop‐
erty to remedy this somewhat. There is no easy solution to this problem, until this is solved try organising your HTML documents such that it contains many lines on
which pages can be cut cleanly.See also: <http://code.google.com/p/wkhtmltopdf/issues/detail?id=9>, <http://code.google.com/p/wkhtmltopdf/is … tail?id=33> and <http://code.google.com/p/wkhtml‐
topdf/issues/detail?id=57>.
[...]
- le résultat sur forum.ubuntu-fr.org n'est pas correcte (alors qu'il l'est avec ma précédente réponse)
à noter qu'il est préférable de conserver le format pdf.
wkhtmltopdf -q -L 0 -R 0 -T 0 -B 0 http://www.imagemagick.org/Usage/files/ imagemagick.pdf
-- Lucid Lynx --
Hors ligne
#14 Le 18/12/2010, à 20:22
- AnsuzPeorth
Re : Créer un JPG d'une page WEB en ligne de commande
Bjr,
Il existe 2 paquets pour faire ça.
gnome-web-photo et kwebdesktop.
J'avais juste essayé le deuxième et il y a un moment de ça (peut être que le paquet n'est plus !)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#15 Le 18/12/2010, à 20:30
- soupaloignon
Re : Créer un JPG d'une page WEB en ligne de commande
http://soupaloignon.net/web2/articles/a … id=8&cat=3
(a vérifier, je ne m'en suis pas servi depuis longtemps, mais il fonctionnait)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#16 Le 18/12/2010, à 20:41
- Totor
Re : Créer un JPG d'une page WEB en ligne de commande
@soupaloignon,AnsuzPeorth : kwebdesktop ne semble plus dans les paquets (du moins pour Lucid). gnome-web-photo dépend de gnome et sous entend l'installation de librairies gnome (un peu lourd pour si peu non ?)
Dernière modification par Totor (Le 19/12/2010, à 10:36)
-- Lucid Lynx --
Hors ligne
#17 Le 18/12/2010, à 21:08
- Totor
Re : Créer un JPG d'une page WEB en ligne de commande
j'ai trouvé un autre plugin à firefox que l'on peut utiliser en ligne de commande : Pearl Crescent Page Saver
inconvénients (car il y en a) :
- si firefox n'est as ouvert, il l'ouvre (mais le referme une fois la capture terminé)
- la version "basic" (free) ne permet pas de spécifier le fichier sortie
mais sinon, il fonctionne très bien (en terme de qualité, c'est celui qui me donne le plus de satisfaction)
-- Lucid Lynx --
Hors ligne
#18 Le 19/12/2010, à 02:54
- Totor
Re : Créer un JPG d'une page WEB en ligne de commande
bon alors, mon dernier mot (je ne sais pas pourquoi mais ce sujet me plaît ) :
en fait, il ya quelques outils (PyWebShot, webkit2png...) basés sur webkit mais ils ont souvent des dépendances.
parmis eux, il y a CutyCapt qui fait très bien le taf et qui est complètement indépendant du navigateur comme 2 solutions déjà proposées :
sudo apt-get install subversion libqt4-webkit libqt4-dev g++
svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
cd cutycapt/CutyCapt
qmake
make
./CutyCapt --url=http://www.google.fr --out=google.png
Dernière modification par Totor (Le 19/12/2010, à 10:36)
-- Lucid Lynx --
Hors ligne
#19 Le 19/12/2010, à 10:09
- merlinx
Re : Créer un JPG d'une page WEB en ligne de commande
Merci beaucoup Tator de t'être autant investit !!
Ta dernière solution avec cutycapt fait exactement ce que je veux et super rapidement en plus .
Nickel !!!
merciiiiiiii
Hors ligne