Intitulé du projet
CARTOGRAPHIE DE SITE WEB
Représentation de l'arborescence d'un site WEB sous forme graphique. Le site pourra être rapatrié à l'aide de robots automatiques, puis le contenu sera analysé afin de produire l'arborescence, y figurera le titre de chaque page et d'autres infos. Il sera permis de naviguer à l'intérieur de l'arborescence du site.
Choix opérés
LANGAGE
Le langage choisi est JAVA. L'arborescence se visualise et se parcourt par le biais d'un composant
graphique initialement développé par symantec, mais adapté pour les besoins du projet (portage sur les JDK 1.1.x et plus). Le reste est fondé directement sur l'API de Java.
FONCTIONALITES
-
Le rapatriement et la naviguation dans l'arborescence du (ou des) site(s) WEB se font simultanément.
-
Un état immédiat du parsing est disponible via un affichage de statistiques du parcourt des adresses Internet.
-
A tout moment, les caractéristiques (Type, Titre, Taille et date) du fichier récupéré sont disponibles par simple clic sur son nom.
-
Il est possible de visualiser les images aux formats jpg, gif (y compris animées).
-
Chaque racine des branches de l'arborescence représente un site différent.
-
Un menu "contextuel" permet de positionner certaines options.
Analyse
POINTS FORTS
-
Ce projet est une "APPLET-ICATION" : Applet et Application au choix. L'interface s'adapte au mode d'utilisation qui en est faite (Pour exemple, le bouton "Quitter" disparait lorsque le mode applet est choisi).
-
Contrairement aux robots automatiques, seules les pages de type text/html sont rapatriées entièrement pour être analysées, tandis que les liens d'autres formats ne le sont pas, seules leurs caractéristiques le sont.
-
Les images tels que les jpg et les gif sont visualisables à la demande
-
Toujours contrairement aux robots traditionnels, la naviguation peut s'effectuer immédiatement après le début du rapatriement de site sur les entrées déjà trouvées.
-
Il est possible de visualiser plusieurs sites sans perdre les résultats précédents, avec fusion des liens communs trouvés.
LIMITATIONS
-
Les pages d'entrée des sites ou répertoires telles qu'index.html n'apparaissent pas systématiquement. Ceci est dû au fait que les adresses sont souvent appelées sans contenir de nom de fichier. Ex : "http://www.essi.fr/". Le Crawler ne peut savoir quel est le nom du fichier qu'il est en train d'analyser. Toutefois, le site apparaitra bien dans l'arborescence du résultat.
-
Tout comme chaque applet, ce visualiseur de site (dans son utilisation en applet bien-sûr) est soumis aux contraintes de sécurité que lui impose chaque browser. Il est maintenant de plus en plus possible d'adapter ces dernières. C'est le cas de l'applet viewer fourni par le JDK, de Microsoft Internet Explorer (avec certaines limites) et Netscape Explorer par le biais d'activator. Il nous a donc semblé judicieux de nous orienter tout de même vers cette option. Ces limitations deviennent bien sûr inexistantes dès que l'utilisation en application est faite !
-
De par l'aspect de naviguation "temps-réel", l'apparition des liens internet se fait lors de leur analyse par le module "Crawler" et non pas lors de leur découverte. Le remplissage de l'arborescence ne se fait donc pas systématiquement dans l'ordre correspondant à celui dans lequel la hiérarchie est parsée.
L'organisation de cette arborescence est cependant toujours respectée.
Utilisation
-
La classe d'entrée du projet est Site_Crawler.class. Dans le cas d'une applet, il faut utiliser Site_Crawler.html.
- La case à cocher "Multi-sites" : Cette option interdit ou valide pour le parseur la sortie du site de l'URL saisie.
-
La case à cocher "Statistiques : Cet option masque ou affiche la fenêtre d'affichage des statistiques. (Note : cet affichage ralenti légèrement le parsing).
-
Le menu contextuel : Il reprend les options précédemment citées et ajoute la fonctionnalité "Visualisation de l'image". Cette dernière ne s'active qu'après sélection d'une image (gif ou jpeg) dans la liste des fichiers.
-
Visualisation d'images : La fenêtre de visualisation n'est pas unique. A chaque nouvelle demande correspond une nouvelle fenêtre. Ce sont les seules à pouvoir être fermée par l'utilisateur, indépendemment de l'interface.
-
La zone de saisie de l'adresse internet : Cette zone est réactive à la touche "ENTER" du clavier. On ne doit y saisir que des adresses de type "http".
-
L'arborescence résultant du parsing : Elle est conservée jusqu'à utilisation du bouton "Effacer l'Arborescence". Lors de plusieurs parsings successifs, les résultats fusionnent avec ceux existants.
Archive et Démonstration
Vous pouvez récupérer l'archive et les sources de ce projet à partir de cette page.
Vous pouvez aussi tester ce projet dans sa version applet à partir de la page "http://www.essi.fr/~bigini/projet_internet/Source/Site_Crawler.html" via appletviewer (version du JDK 1.1.5 au moins) par exemple. Note : Vous ne trouverez pas cette adresse sous forme de lien pour éviter les résultats désastreux produits actuellement par les browsers les plus courants avec des applets utilisant cette version du JDK.
Notes et Impressions
Nous avons réellement découvert Java au cours du développement de ce projet. Ainsi, l'utilisation des composants de l'API et le respect des conventions de notation de Java sont allés en croissant avec le temps.
Nous tenons aussi à remercier Stéphane VINTER dont la connaissance de Java et les explications qu'il nous a fournies tout au long du projet, ont été d'une grande importance.
Informations supplémentaires
Note à l'attention des ESSIens qui désireraient utiliser ce projet : Ne l'exécutez surtout pas sur Nessie ! Apparemment, Motif et Java n'y font pas très bon ménage ! De plus, les "dispose()" y posent problèmes, tout comme le composant TreeView de Symantec !
Les codeurs du
:
attendent vous commentaires et impressions...