|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.swing.text.html.HTMLEditorKit.ParserCallback | +--CrawlerCallbackHandler
Field Summary | |
protected java.lang.String |
cur_link
Le lien en cours de traitement. |
protected java.util.Properties[] |
dicos
Tableau des dictionnaires des mots à ignorés lors du parsage. |
protected java.util.Hashtable[] |
ht_tab
Tableau des tables de hachage dans lesquelles vont être stockés tous les liens. |
protected boolean |
isInsideLink
|
protected java.lang.String |
root
Le chemin du répertoire contenant le fichier source de la page à parser. |
protected java.lang.String |
short_root
Le chemin du répertoire contenant le fichier source de la page à parser sans l'url du serveur. |
Fields inherited from class javax.swing.text.html.HTMLEditorKit.ParserCallback |
IMPLIED |
Constructor Summary | |
CrawlerCallbackHandler(java.util.Hashtable[] ht_tab,
java.util.Properties[] dicos,
java.lang.String root)
Construit un nouvel objet CrawlerCallbackHandler . |
Method Summary | |
void |
handleEndTag(javax.swing.text.html.HTML.Tag tag,
int i)
Répère la fin d'un tag double (c'est à dire un tag qu'on doit refermer). |
void |
handleSimpleTag(javax.swing.text.html.HTML.Tag tag,
javax.swing.text.MutableAttributeSet set,
int i)
Répère les balises simples. |
void |
handleStartTag(javax.swing.text.html.HTML.Tag tag,
javax.swing.text.MutableAttributeSet set,
int i)
Répère le début d'un tag double (c'est à dire un tag qu'on doit refermer). |
void |
handleText(char[] aChar,
int i)
Lit le texte html associé à un lien. |
protected void |
insert(java.util.Hashtable ht,
java.lang.String lien,
java.lang.String[] mots)
Insère dans une table de hachage un lien associé à un ou plusieurs mot(s) Tous les mots passés en argument à la méthode ne sont pas forcément insérés dans la table de hachage. |
protected int |
language()
Détecte la langue employée dans la page qu'on est en train de parser. |
protected java.lang.String |
simplifyPath(java.lang.String path)
Transforme un chemin absolu de fichier en un chemin canonique, c'est à dire un chemin commençant par ' / ' et ne comportant aucun '. |
protected java.lang.String |
simplifyUrl(java.lang.String s_url)
Transforme une url absolue en une url canonique, c'est à dire une url dont le chemin est canonique. |
Methods inherited from class javax.swing.text.html.HTMLEditorKit.ParserCallback |
flush, handleComment, handleEndOfLineString, handleError |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected boolean isInsideLink
protected java.util.Hashtable[] ht_tab
protected java.util.Properties[] dicos
protected java.lang.String root
Par exemple si la page à parser est http://www.server.fr/rep1/rep2/fic.html
alors
root
contiendra http://www.server.fr/rep1/rep2/
.
Ce champ est nécessaire pour transformer les chemins relatifs rencontrés dans cette page en chemin absolus.
protected java.lang.String short_root
Par exemple si la page à parser est http://www.server.fr/rep1/rep2/fic.html
alors
short_root
contiendra /rep1/rep2/
.
Ce champ est nécessaire pour transformer les chemins relatifs rencontrés dans cette page en chemin absolus pour les images.
protected java.lang.String cur_link
Cette valeur n'est valide que lorsque isInsideLink
vaut true
.
Constructor Detail |
public CrawlerCallbackHandler(java.util.Hashtable[] ht_tab, java.util.Properties[] dicos, java.lang.String root)
CrawlerCallbackHandler
.
ht_tab
- Tableau des tables de hachage dans lesquelles vont être stockés tous les liens.dicos
- Tableau des dictionnaires des mots à ignorés lors du parsage.root
- Le chemin du répertoire contenant le fichier source de la page à parser.ht_tab
,
dicos
,
root
Method Detail |
public void handleStartTag(javax.swing.text.html.HTML.Tag tag, javax.swing.text.MutableAttributeSet set, int i)
A
c'est à dire les hyperliens.Une fois qu'un tag de ce type est trouvé, la méthode se décompose en trois parties:
http
ou mailto
)
http
, elle reconstitue son url canonique grâce à la
méthode String simplifyUrl(String)
cur_link
pour le rendre accessible à
la méthode void handleText(char[],int)
handleStartTag
in class javax.swing.text.html.HTMLEditorKit.ParserCallback
simplifyUrl(String)
public void handleEndTag(javax.swing.text.html.HTML.Tag tag, int i)
/A
c'est à dire les hyperliens.
Elle permet d'indiquer à la méthode void handleText(char[],int)
qu'on est
sorti du lien.
handleEndTag
in class javax.swing.text.html.HTMLEditorKit.ParserCallback
public void handleSimpleTag(javax.swing.text.html.HTML.Tag tag, javax.swing.text.MutableAttributeSet set, int i)
IMG
dont le champ alt n'est
pas vide.Lorsqu'une telle balise est trouvée:
ALT
: transformation en minuscules, supprime les accents
et découpage en tableau de mots.
simplifyPath(String)
.
simplifyUrl(String)
.
void insert (Hashtable,String,String[])
handleSimpleTag
in class javax.swing.text.html.HTMLEditorKit.ParserCallback
simplifyUrl(String)
,
simplifyPath(String)
,
insert(Hashtable,String,String[])
public void handleText(char[] aChar, int i)
Cette méthode ne considère que le texte situé entre les tags doubles A
et
/A
grâce au champ isInsideLink
.
Elle se décompose en deux parties:
void insert (Hashtable,String,String[])
handleText
in class javax.swing.text.html.HTMLEditorKit.ParserCallback
isInsideLink
,
insert(Hashtable,String,String[])
protected java.lang.String simplifyPath(java.lang.String path) throws java.io.FileNotFoundException
/
' et ne comportant aucun '.
' ou '..
'.
Par exemple:
Transforme
/./rep1/rep2/../rep3/rep4/../../truc
en
/rep1/truc
.
path
- Le chemin absolu à cononiser.
java.io.FileNotFoundException
- Si le chemin absolu passé en argument est incorrect (par ex
/rep1/.././../truc
).protected java.lang.String simplifyUrl(java.lang.String s_url) throws java.io.FileNotFoundException, java.net.MalformedURLException
Le chemin d'une url est par exemple pour http://www.somewhere.com/rep1/rep2/index.html
, /rep1/rep2/index.html
.
Pour savoir ce qu'est un chemin canonique, voir simplifyPath(String)
.
java.io.FileNotFoundException
- Si le chemin de l'url passée en argument est incorrect (par ex
/rep1/.././../truc
).
java.net.MalformedURLException
- Si l'url est mal formée.simplifyPath(java.lang.String)
protected int language()
Cette méthode reste entièrement à faire (dans une version ultérieure) et pour le moment le dictionnaire français est systématiquement retourné.
Crawler.DICO_FR
,
Crawler.DICO_EN
,
Crawler.DICO_DE
protected void insert(java.util.Hashtable ht, java.lang.String lien, java.lang.String[] mots) throws java.lang.NullPointerException
Tous les mots passés en argument à la méthode ne sont pas forcément insérés dans la table de hachage. En effet, les mots trouvés dans le dictionnaire de la langue de la page sont ignorés.
Cette fonction peut être utilisée aussi bien par getPages()
, getMails()
ou getPict()
.
Remarque: Le résultat de plusieurs appels à cette méthode pour le même lien est équivalent à un seul appel avec dont le troisième paramètre serait la concaténation du troisième paramètre de chaque appel séparé.
ht
- la table de hachage dans laquelle on veut réaliser l'insertionlien
- le lien peut être une url de page web, une adresse mail ou un nom (avec chemin absolu) d'imagemots
- un ensemble de mots référençant le lien
java.lang.NullPointerException
- si l'un des paramètres est nulldicos
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |