Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/12/2010, à 16: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

site.jpg

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, à 16:36)

Hors ligne

#2 Le 14/12/2010, à 17: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, à 17:03)


-- Lucid Lynx --

Hors ligne

#3 Le 14/12/2010, à 17:05

merlinx

Re : Créer un JPG d'une page WEB en ligne de commande

Totor a écrit :

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, à 18: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, à 23: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, à 23: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, à 23: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 18/12/2010, à 00: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é !...

1bd560668a7361e589a05c5a81b9dt.jpg

Dernière modification par bluc (Le 18/12/2010, à 00:15)


Clevo :  Ubuntu 23.10   ❖  Xubuntu 22.10  ❖  Kubuntu 23.10   
         avec partition data commune       Une fraction de seconde                    Multiboot

Hors ligne

#8 Le 18/12/2010, à 00: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 18/12/2010, à 00: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 18/12/2010, à 00: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, à 12: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, à 12: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, à 11:41)


-- Lucid Lynx --

Hors ligne

#12 Le 18/12/2010, à 15: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, à 16: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 :

wkhtmltopdf a écrit :

[...]
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, à 21: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, à 21: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, à 21: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, à 11:36)


-- Lucid Lynx --

Hors ligne

#17 Le 18/12/2010, à 22: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, à 03: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 wink) :

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, à 11:36)


-- Lucid Lynx --

Hors ligne

#19 Le 19/12/2010, à 11: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