Class Crawler

java.lang.Object
  |
  +--Crawler

public class Crawler
extends java.lang.Object

Classe principale du crawler puisqu'elle contient la méthode main.

Cette classe gère:

See Also:
NavThread, VerifThread

Field Summary
protected  java.util.Properties conf
          Objet stockant tous les paramètres de configuration du crawler.
protected static java.lang.String DEF_DEPTH
          Profondeur de recherche par défaut utilisé si le fichier de configuration n'est pas accessible.
protected static java.lang.String DEF_START
          Page html de départ par défaut utilisée si le fichier de configuration n'est pas accessible.
protected static java.lang.String DEF_THREAD
          Nombre de processus par défaut utilisé si le fichier de configuration n'est pas accessible.
static int DICO_DE
          Constante désignant le dictionnaire allemands des mots à ignorés (inutilisé dans cette version).
static int DICO_EN
          Constante désignant le dictionnaire anglais des mots à ignorés (inutilisé dans cette version).
static int DICO_FR
          Constante désignant le dictionnaire français des mots à ignorés lors du parsage des pages html.
protected  java.util.Properties[] dicos
          Tableau contenant les dictionnairess des mots à ignorés lors du parsage des pages html.
protected  HttpVerifThread httpverif_proc
          Objet contenant le processus de vérification des liens (HttpVerifThread) du crawler.
static boolean journal
          Drapeau demandant au programme de journaliser ce qu'il fait.
static java.lang.String name_db
          Champ contenant le nom de la base de données dans laquelle sont stockées tous les liens trouvés sur le web.
protected static int NB_DICOS
          Constante stockant le nombre total de dictionnaires de mots à ignorés.
protected  java.io.PrintStream outLog
          Objet permettant d'écrire dans le fichier de journalisation.
static java.lang.String passwd_db
          Champ contenant le mot de passe de l'utilisateur pour se connecter à la base de données.
protected static java.lang.String pathConf
          Chemin par défaut du fichier de configuration du crawler.
protected static java.lang.String pathDicos
          Chemin par défaut des dictionnaires des mots à ignorés lors du parcours des pages html.
protected static java.lang.String pathLog
          Chemin par défaut du fichier de journalisation du crawler.
protected  java.util.Vector tab_nav_procs
          Tableau contenant tous les processus de navigation (NavThread) du crawler.
static java.lang.String user_db
          Champ contenant le nom de l'utilisateur qui doit se connecter à la base de données.
static boolean verbose
          Drapeau demandant au programme de signaler en sortie standard toutes les pages qu'il parse et d'autres infos
protected  VerifThread verif_proc
          Objet contenant le processus de vérification (VerifThread) du crawler.
 
Constructor Summary
Crawler()
          Construit un nouvel objet Crawler qui lancera l'application.
 
Method Summary
protected  int getDepth()
          Retourne la profondeur maximale de l'exploration à partir de la page web de départ.
protected  java.lang.String getInitPath(int i)
          Retourne l'url de la i-ème page html de démarrage des recherches.
protected  int getNbPaths()
          Retourne le nombre de page(s) web pour commencer l'exploration.
protected  int getNbThreads()
          Retourne le nombre de processus de navigation (NavThread).
protected  void loadConf(java.lang.String path)
          Charge la configuration du crawler.
protected  void loadDefConf()
          Charge les paramètres de configuration du crawler par défaut.
protected  void loadDico(java.lang.String path, int lang)
          Charge un dictionnaire de mots à ignorés lors du parsage d'une page html.
static void main(java.lang.String[] args)
          Point de départ de l'application.
protected  void openLog()
          Ouvre un flux vers le fichier de journalisation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

verbose

public static boolean verbose
Drapeau demandant au programme de signaler en sortie standard toutes les pages qu'il parse et d'autres infos


journal

public static boolean journal
Drapeau demandant au programme de journaliser ce qu'il fait. Si le drapeau est désactivé seules les erreurs entrainant la fermeture d'un processus sont journalisées.


name_db

public static final java.lang.String name_db
Champ contenant le nom de la base de données dans laquelle sont stockées tous les liens trouvés sur le web.

See Also:
Constant Field Values

user_db

public static final java.lang.String user_db
Champ contenant le nom de l'utilisateur qui doit se connecter à la base de données.

See Also:
Constant Field Values

passwd_db

public static final java.lang.String passwd_db
Champ contenant le mot de passe de l'utilisateur pour se connecter à la base de données.

See Also:
Constant Field Values

pathConf

protected static final java.lang.String pathConf
Chemin par défaut du fichier de configuration du crawler.

See Also:
Constant Field Values

DEF_DEPTH

protected static final java.lang.String DEF_DEPTH
Profondeur de recherche par défaut utilisé si le fichier de configuration n'est pas accessible.

See Also:
Constant Field Values

DEF_THREAD

protected static final java.lang.String DEF_THREAD
Nombre de processus par défaut utilisé si le fichier de configuration n'est pas accessible.

See Also:
Constant Field Values

DEF_START

protected static final java.lang.String DEF_START
Page html de départ par défaut utilisée si le fichier de configuration n'est pas accessible.

See Also:
Constant Field Values

conf

protected java.util.Properties conf
Objet stockant tous les paramètres de configuration du crawler.

Cet objet regroupe les propriétés suivantes:


pathDicos

protected static final java.lang.String pathDicos
Chemin par défaut des dictionnaires des mots à ignorés lors du parcours des pages html.

See Also:
Constant Field Values

DICO_FR

public static final int DICO_FR
Constante désignant le dictionnaire français des mots à ignorés lors du parsage des pages html.

See Also:
Constant Field Values

DICO_EN

public static final int DICO_EN
Constante désignant le dictionnaire anglais des mots à ignorés (inutilisé dans cette version).

See Also:
Constant Field Values

DICO_DE

public static final int DICO_DE
Constante désignant le dictionnaire allemands des mots à ignorés (inutilisé dans cette version).

See Also:
Constant Field Values

NB_DICOS

protected static final int NB_DICOS
Constante stockant le nombre total de dictionnaires de mots à ignorés.

Rem: après compilation il est possible de modifier le contenu des dictionnaires mais pas leur nombre.

See Also:
Constant Field Values

dicos

protected java.util.Properties[] dicos
Tableau contenant les dictionnairess des mots à ignorés lors du parsage des pages html.


pathLog

protected static final java.lang.String pathLog
Chemin par défaut du fichier de journalisation du crawler.

See Also:
Constant Field Values

outLog

protected java.io.PrintStream outLog
Objet permettant d'écrire dans le fichier de journalisation.


tab_nav_procs

protected java.util.Vector tab_nav_procs
Tableau contenant tous les processus de navigation (NavThread) du crawler.

See Also:
NavThread

verif_proc

protected VerifThread verif_proc
Objet contenant le processus de vérification (VerifThread) du crawler.

See Also:
VerifThread

httpverif_proc

protected HttpVerifThread httpverif_proc
Objet contenant le processus de vérification des liens (HttpVerifThread) du crawler.

See Also:
HttpVerifThread
Constructor Detail

Crawler

public Crawler()
Construit un nouvel objet Crawler qui lancera l'application.

Method Detail

loadDefConf

protected void loadDefConf()
Charge les paramètres de configuration du crawler par défaut.

Cette méthode est appelée lorsque le fichier de configuration est corrompu, inexistant ou non lisible.

See Also:
DEF_DEPTH, DEF_THREAD, DEF_START

loadConf

protected void loadConf(java.lang.String path)
Charge la configuration du crawler.

Pour cela la méthode commence par essayer d'accéder au fichier de configuration dont le chemin est passé en paramètre. Si celui-ci est corrompu, inaccessible ou illisible, les paramètres par défaut sont simplement chargés. Si le fichier n'existe pas, là encore les paramètres par défaut sont chargés et de plus le fichier est créé avec ces mêmes paramètres.

Parameters:
path - le chemin d'accès au fichier de configuration
See Also:
loadDefConf()

loadDico

protected void loadDico(java.lang.String path,
                        int lang)
                 throws java.lang.NullPointerException
Charge un dictionnaire de mots à ignorés lors du parsage d'une page html.

En cas d'erreur de lecture, le chargement est simplement abandonné et n'interrompt pas l'initialisation du crawler (le fait est seulement signalé sur la sortie standard).

Parameters:
path - le chemin d'accès au fichier contenant le dictionnaire
lang - la langue de ce distionnaire
Throws:
java.lang.NullPointerException - Emis si le paramètre path est null.

getDepth

protected int getDepth()
Retourne la profondeur maximale de l'exploration à partir de la page web de départ. Normalement cette profondeur est stockée dans le champ Properties conf. Cependant, si celui-ci est corrompu, c'est la profondeur par défaut qui est retournée.

Rem : Ce comportement n'est pas forcément souhaitable et devrait être modifié ultérieurement.

Returns:
La profondeur maximale de l'exploration à partir de la page web de départ.
See Also:
conf, DEF_DEPTH

getNbThreads

protected int getNbThreads()
Retourne le nombre de processus de navigation (NavThread). Normalement ce nombre est stocké dans le champ Property conf. Cependant, si celui-ci est corrompu, c'est le nombre par défaut qui est retourné.

Rem : Ce comportement n'est pas forcément souhaitable et devrait être modifié ultérieurement.

Returns:
Le nombre de processus de navigation (NavThread).
See Also:
conf, DEF_THREAD, NavThread

getNbPaths

protected int getNbPaths()
Retourne le nombre de page(s) web pour commencer l'exploration. Normalement ce nombre est stocké dans le champ Property conf. Cependant, si celui-ci est corrompu, c'est le nombre par défaut (1) qui est retourné.

Rem : Ce comportement n'est pas forcément souhaitable et devrait être modifié ultérieurement.

Returns:
Le nombre de page(s) web pour commencer l'exploration.
See Also:
conf

getInitPath

protected java.lang.String getInitPath(int i)
Retourne l'url de la i-ème page html de démarrage des recherches.

Cette url est stockée dans la variable Properties conf.

Returns:
L'url de la i-ème page html de démarrage des recherche ou null si elle n'existe pas.
See Also:
conf

openLog

protected void openLog()
                throws java.lang.NullPointerException,
                       java.io.IOException
Ouvre un flux vers le fichier de journalisation.

Si le fichier existe déjà son contenu sera écrasé. Dans le cas contraire, il sera créé. Si le fichier n'est pas ouvrable en écriture ou n'est pas un fichier valide, une exception est lancée à la fonction appelante.

Le flux vers le fichier de journalisation est de type PrintStream et permet donc une utilisation partagée entre plusieurs processus.

Throws:
java.lang.NullPointerException - Emis si le chemin d'accès au fichier de journalisation n'a pas été défini (cette exception ne devrait jamais être lancée et pourrait être suppriée ultérieurement).
java.io.IOException - Emis si le fichier de journalisation n'est pas accessible en écriture.
See Also:
outLog

main

public static void main(java.lang.String[] args)
Point de départ de l'application.

Cette méthode est décomposable en plusieurs parties et sous-parties:

Parameters:
args - liste des arguments passés à l'application.
See Also:
NavThread, VerifThread