Pages : 1
#1 Le 24/11/2006, à 01:16
- Mathieu11
Script de telechargement de site
Tout est dans le titre. Je suis entrain de faire un script qui telecharge un site sur le disque dur pour qu'on puisse le lire en local. C'est le tout début et je compte l'améliorer. Voila à quoi il ressemble pour l'instant :
#! /bin/bash
#Script d'aspiration de site
#On demande la profondeur de l'aspiration du site.
recursion=`zenity --entry --title "Degré de profondeur" --text "Saisissez le degré de profondeur d'exploration désiré du site :" --entry-text "5"`
#On demande le nom du site à copier.
nom=`zenity --entry --title "Nom du site" --text "Entrez le nom du site à copier :" --entry-text "Nom du dossier du site"`
#On demande de spécifier l'adresse du site à copier.
adresse=`zenity --entry --title "Site à aspirer" --text "Entrez l'adresse du site à copier :" --entry-text "www.site.com"`
#On lance la copie du site et la barre de progression.
wget -r -l$recursion -k -E --progress=bar $adresse -o /dev/stdout | tee -a wget.log | zenity --title "Téléchargement en cours" --progress --pulsate --autoclose --text "Téléchargement du site en cours..."
#On renomme le dossier www.nomdusite.com en Nom du site.
mv $adresse $nom
Pour ma question maintenant. Je voudrais faire une barre de progression qui se base sur ce principe :
progression actuelle = degre de recursion actuelle *100 / degre de recursion total
Quelqu'un saurait-il comment je peux recuperer le degre de recursion en cours ?
Sinon si quelqu'un a une idée pour obtenir une barre de progression plus fluide il est le bienvenu.
On pourrait peut etre faire un truc du style (nombre de liens explorés * 100 / liens a explorer)
mais je sais pas si c'est possible.
Merci
Dernière modification par Mathieu11 (Le 29/11/2006, à 00:50)
Vostro 1400
Hors ligne
#2 Le 24/11/2006, à 10:32
- papilipe
Re : Script de telechargement de site
Hello,
Peut-être hors sujet, mais a-tu été voir comment fonctionnait httrack :
- http://www.httrack.com/index.php
- http://www.framasoft.net/article1014.html
Le moteur est accessible par la ligne de commande.
A+
Hors ligne
#3 Le 24/11/2006, à 11:06
- bapoumba
Re : Script de telechargement de site
@ Mathieu11 :
Juste pour info (et sans te prêter des intentions que tu n'aurais pas, OK ?), tu as lu ça ? :
http://forum.ubuntu-fr.org/viewtopic.php?id=36588
6. Une aspiration totale ou partielle du forum empêchant le bon fonctionnement de celui-ci est passible d'un bannissement de l'IP.
| Ubuntu Forums |
J'aime les fraises.
Hors ligne
#4 Le 24/11/2006, à 11:12
- Mathieu11
Re : Script de telechargement de site
@Bapoumba
Oui j'ai déjà lu ceci, ne t'inquiètes pas je préfère largement contribuer au forum que l'aspirer
En fait je veux juste aspirer de petits sites contenant certains corrigés de concours qui m'intéressent
@papilipe.
Je regarde ca merci.
Vostro 1400
Hors ligne
#5 Le 24/11/2006, à 11:16
- Mathieu11
Re : Script de telechargement de site
Httrack fait ce que je veux mais il ne m'informe pas sur comment configurer ma barre de progression
Sans prétention, je préférerais utiliser mon script...
Vostro 1400
Hors ligne
#6 Le 24/11/2006, à 11:25
- bapoumba
Re : Script de telechargement de site
OK Mathieu11, c'était plus pour toi que je m'inquiétais
| Ubuntu Forums |
J'aime les fraises.
Hors ligne
#7 Le 24/11/2006, à 19:29
- pabix
Re : Script de telechargement de site
Mathieu11 : tu peux piper le wget dans un "zenity --progress --pulsate --auto-close" ou qch comme ça
Benoit
Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D
Hors ligne
#8 Le 25/11/2006, à 11:12
- Mathieu11
Re : Script de telechargement de site
@pabix :
Tu veux parler de faire quelque chose dans ce style ?
wget -r -l$recursion -k -E $adresse | zenity --progress --pulsate --auto-close
Ca ne fonctionne pas
Vostro 1400
Hors ligne
#9 Le 25/11/2006, à 15:30
- lunique
Re : Script de telechargement de site
Je vais peut etre dire une betise (pan sur les doigts, j'ai qu'a lire le man) mais on est sur que wget aspire par niveau de recursion et qu'il ne fait pas plutot un parcours en profondeur ?
Hors ligne
#10 Le 25/11/2006, à 16:12
- eclipse
Re : Script de telechargement de site
Tout est dans le titre. Je suis entrain de faire un script qui telecharge un site sur le disque dur pour qu'on puisse le lire en local. C'est le tout début et je compte l'améliorer. Voila à quoi il ressemble pour l'instant :
Ton script est pas mais je pense, si cest possible bien sur, qu'il ne faut pas fermé automatikement la fenetre, et aussi ce serait pas mal de mettre une barre de progression...
#11 Le 25/11/2006, à 20:07
- Balkoth
Re : Script de telechargement de site
Bonjour,
il y a quelque temps j'ai fait un script utilisant wget et zenity, tu pourrais t'en inspirer.
#! /bin/sh
# Aspirateur de skin, version graphique
# Créé par Balkoth
# Dernière modification le 08/10/2006
FILELIST="skin_file_list.txt"
TITLE="Aspirateur de skin Ogame"
if [ ! -f $FILELIST ];
then
zenity --title="$TITLE" --error --text="La liste des fichiers $FILELIST n'a pas été trouvée, abandon."
exit 1
fi
url=$(zenity --title="$TITLE" --entry --text="Entrez l'adresse du skin à télécharger :")
#Si pas de / en fin de ligne on le rajoute
if [ ! ${url:${#url}-1} = "/" ]
then
url=$url"/"
fi
# on compte le nombre de "/" dans l'adresse pour l'option --cut-dirs de wget
# ça permet d'avoir une arborescence locale correcte
n=`echo $url | tr \/ " " | wc -w`
let "n = $n + 1"
base_dir=`echo $url | cut -f$n -d/`
let "n = $n - 4"
# dans le cas de skin situé directement à la racine d'un site,
# ajustement des paramètres
if [ $n -eq -1 ];
then
let "n = $n + 1"
base_dir=.
fi
if [ $n -lt 0 ];
then
zenity --title="$TITLE" --error --text=$url"\n\nL'adresse entrée n'est pas valide"
exit 2
fi
zenity --title="$TITLE" --question --text="Télécharger les fichiers dans le dossier \n$(pwd)/$base_dir ?"
if [ $? -eq 1 ];
then
zenity --title="$TITLE" --info --text="Placez vous dans le répertoire souhaité avant de lancer ce script"
exit 3
fi
#echo "Téléchargement du fichier formate.css"
if ! wget -q -x -nH --cut-dirs=$n $url"formate.css"
then
zenity --title="$TITLE" --error --text=$url"\n\nImpossible de trouver le fichier formate.css\nAdresse de skin invalide, ou problème de réseau"
exit 4
fi
echo "\n Skin : $url" >> wget.log
echo "Téléchargement des fichiers principaux..." >> wget.log
wget -nv -x -nH --cut-dirs=$n -B $url -i $FILELIST -o /dev/stdout | tee -a wget.log | tr -d "\n" | zenity --title="$TITLE" --progress --pulsate --auto-close --text="Téléchargement des fichiers principaux, veuillez patienter..."
echo "\nTéléchargement des fichiers spécifiques au skin..." >> wget.log
grep url $base_dir/formate.css | cut -f2 -d "(" | cut -f1 -d ")" | tr -d \" | wget -nv -x -nH --cut-dirs=$n -B $url -i - -o /dev/stdout | tee -a wget.log | zenity --title="$TITLE" --progress --pulsate --auto-close --text="Téléchargement des fichiers spécifiques au skin..."
zenity --title="$TITLE" --info --text="Téléchargement terminé."
Notamment, wget dispose de nombreuses options intéressantes (vive le man).
Pour faire fonctionner la barre de progression avec zenity en utilisant le pipe, il faut forcer la sortie de wget (-o /dev/stdout) et enlever les retours à la ligne (tr -d "\n").
Enfin ce n'est pas parfait non plus, car la barre n'affiche pas le pourcentage effectué, elle est juste animée pour montrer que le téléchargement est en cours.
Hors ligne
#12 Le 26/11/2006, à 01:03
- Jonny_the_dog
Re : Script de telechargement de site
Matthieu, sur un autre topic, tu parle de l'interface. Il existe un logiciel sympa, qui creer tout seul l'interface, et qui execute du bash. C'est ce que tu recherche
il me semble que c kdialog
Hors ligne
#13 Le 26/11/2006, à 03:43
- Petit Willy
Re : Script de telechargement de site
salut a tous,
un peu hors sujet mais quelqu'un peu t'il me dire ou trouver de la doc en fr sur zenity
merci...
Hors ligne
#14 Le 26/11/2006, à 16:25
- Mathieu11
Re : Script de telechargement de site
Merci a tous.
Merci lunique de m'avoir pointé une petite erreur d'appelation dans le script, effectivement ce que je demande est la profondeur d'aspiration. Merci Balkoth j'avoue que la barre de progression n'est pas exactement ce que j'espérais mais c'est mieux que rien
Je mets le script à jour en haut de page au fur et à mesure si ca intéresse du monde. Sinon je suis d'accord avec eclipse pour les fermetures de fenêtre mais c'est de la finiton je m'y mets maintenant.
Vostro 1400
Hors ligne
#15 Le 26/11/2006, à 18:23
- lunique
Re : Script de telechargement de site
Arf, j'arrete pas de mal m'exprimer en ce moment, le manque de sommeil je pense.
Prenons un arbre pour representer une arborescence web (plus simple que le graphe pour exprimer mon idée) (racine (fils1) (fils2)...)
(1(2(3(4)(5))(6(7)(8)))(9))
[HS]Sa me rappel les cours de scheme tiens[/HS]
Bon a premiere vue, sa aspire en faisant 1-2-3-4-5-6-8-9 (enfin, justement, je ne sais pas ^ ^ ). Donc du coup, on ne peut pas savoir a quelle profondeur on est puisqu'elle varie. En plus, comment on fait une barre indicative vu qu'il peut y avoir enormement de page en profondeur 4 ou aucune.
Si tu tiens a ta barre de telechargement, il faudrait d'abord calculer le nombre de pages qu'on va telecharger et ensuite on peut faire le calcul pages recues / pages total.
Edit : si quelqu'un connait un logiciel pour faire des arbres et en faire des images,je suis preneur, car le systeme liste n'est pas tres visuel ^ ^
Dernière modification par lunique (Le 26/11/2006, à 18:24)
Hors ligne
#16 Le 25/11/2007, à 13:38
- x@v
Re : Script de telechargement de site
Pour ma question maintenant. Je voudrais faire une barre de progression qui se base sur ce principe :
progression actuelle = degre de recursion actuelle *100 / degre de recursion totalQuelqu'un saurait-il comment je peux recuperer le degre de recursion en cours ?
Sinon si quelqu'un a une idée pour obtenir une barre de progression plus fluide il est le bienvenu.
On pourrait peut etre faire un truc du style (nombre de liens explorés * 100 / liens a explorer)
Pourquoi tu multiplie par 100 ?
Merci
[-- qwerty user --]
Hors ligne
#17 Le 26/11/2007, à 01:23
- frafa
Re : Script de telechargement de site
lo
Tiens tu m'as donné envie d'essayer de faire une barre progress avec zenity sans (--pulsate)
Résultat
function PROGRESS ()
{
(i=0 ; while [ $i -lt 100 ] ; do i=$(($i+1)) ;(echo "$i";sleep 1) ;done) | zenity --progress --text "zzZZzz" --width 600 --auto-close;
}
PROGRESS
Dernière modification par frafa (Le 26/11/2007, à 01:24)
Hors ligne
#18 Le 17/12/2008, à 08:02
- frafa
Re : Script de telechargement de site
huhu l'est fatigu l'robot spammeur, à la casse
Hors ligne