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 24/11/2006, à 00: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 28/11/2006, à 23:50)


Vostro 1400

Hors ligne

#2 Le 24/11/2006, à 09: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, à 10: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

les règles du forum a écrit :

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, à 10: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 big_smile
En fait je veux juste aspirer de petits sites contenant certains corrigés de concours qui m'intéressent smile

@papilipe.
Je regarde ca merci.


Vostro 1400

Hors ligne

#5 Le 24/11/2006, à 10: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 sad
Sans prétention, je préférerais utiliser mon script...


Vostro 1400

Hors ligne

#6 Le 24/11/2006, à 10:25

bapoumba

Re : Script de telechargement de site

OK Mathieu11, c'était plus pour toi que je m'inquiétais wink


| Ubuntu Forums |
J'aime les fraises.

Hors ligne

#7 Le 24/11/2006, à 18: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, à 10: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 sad


Vostro 1400

Hors ligne

#9 Le 25/11/2006, à 14: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, à 15:12

eclipse

Re : Script de telechargement de site

Mathieu11 a écrit :

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... smile

#11 Le 25/11/2006, à 19: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, à 00: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, à 02: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... big_smile

Hors ligne

#14 Le 26/11/2006, à 15: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 smile
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, à 17: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, à 17:24)

Hors ligne

#16 Le 25/11/2007, à 12: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 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)

Pourquoi tu multiplie par 100 ?
Merci


[-- qwerty user --]

Hors ligne

#17 Le 26/11/2007, à 00: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 smile

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, à 00:24)

Hors ligne